跳转到主要内容

Documentation Index

Fetch the complete documentation index at: https://docs.raydium.io/llms.txt

Use this file to discover all available pages before exploring further.

本页内容由 AI 自动翻译,所有内容以英文版本为准。查看英文版 →

一句话总结

CPMM —— 常量积 市场做市商(Constant Product Market Maker),在 Raydium UI 中正式称为「标准 AMM」—— 是经典 x · y = k AMM 在 Solana 上的原生实现。没有 OpenBook 订单簿、没有 Serum 遗留代码、除了 SPL Token 和 Token-2022 外没有外部依赖。每个池都由三元组(两个代币金库、一个 LP 代币)组成,由程序所有的权限 PDA 管理,价格由金库余额的乘积决定。这是 Raydium 推荐用于所有新的常量积池的 AMM,也是 /pools/create 端点和网页 UI 的「创建池」流程默认使用的。

CPMM 的优势

  • Token-2022 扩展白名单验证。 CPMM 接受任意的 Token-2022 代币。程序在池创建时强制执行安全扩展白名单:TransferFeeConfigMetadataPointerTokenMetadataInterestBearingConfigScaledUiAmount。任何其他扩展都会导致 InitializeNotSupportMint 拒绝 —— 除非代币本身在程序内维护的小型硬编码代币白名单上(用于逐案例上线特定代币)。转账费特别影响交换数学,并应用于交易的正确一侧 —— 参见 algorithms/token-2022-transfer-fees
  • 可预测的费用。 每个池引用创建时选定的 AmmConfig。配置包含交易费率(在 LP、协议和基金之间分配)和独立的创建者费率。创建者费是独立的存储桶 —— 绝不是交易费的一部分。池在创建时选择是否收取创建者费。默认值和完整的分配数学在 products/cpmm/fees
  • 通过观察环形缓冲的链上 TWAP。 每次交换都会更新一个 observation 账户。外部合约可以读取累积价格观察来计算 TWAP,无需自定义预言机。
  • 扁平账户结构。 池由六个 PDA 完全描述(权限、池状态、LP 代币、两个金库、观察)。没有每市场 OpenBook 账户、没有事件队列、没有请求队列。与 AMM v4 相比,交易在计算和账户数量上都更便宜。
  • 销毁即赚兼容。 LP 代币可以在 LP Lock 程序下锁定,以便池创建者可以继续收取费用而无需保留提取流动性的权利。用于「永久」流动性启动。

CPMM 不是什么

  • 不是集中的。 流动性均匀分布在整个价格范围内,如 Uniswap v2。如果你需要资本高效的做市 —— 即在当前价格附近集中流动性 —— 使用 CLMM
  • 不是混合的。AMM v4 不同,CPMM 池不在 OpenBook 市场上放置挂单。跨 CPMM 池的路由通过 AMM Routing 程序进行,而不是通过 CLOB。
  • 不是为任意曲线启动的。 曲线硬编码为常量积。如果你想要代币启动的联结曲线,使用 LaunchLab,它在填满时升级到 CPMM 池。

CPMM 与 AMM v4 的区别

维度AMM v4CPMM
曲线常量积常量积
OpenBook 依赖惯性(原本在 OpenBook 市场上放置订单;集成已停用)
Token-2022 支持否(仅 SPL Token)(包括转账费)
每个 V2 交换的账户数~9~11
每次交换的计算单位~80k–120k(V2 路径)~60k–100k
TWAP 预言机无原生预言机账户observation 环形缓冲
新池创建(今日)不是默认(程序仍接受)默认
状态完全正常运行活跃、推荐
有关迁移故事的更深入讨论在 protocol-overview/versions-and-migration

心智模型

CPMM 池是一个程序所有的对象,持有三个余额:vault0(token0)、vault1(token1)和 LP 代币的供应。LP 代币的供应跟踪存款人对池的债权;代币金库持有实际资产。其他一切 —— 权限 PDA、观察账户、费用配置指针 —— 都是为了使这个三变量关系可交易、可收费和可观察的簿记。 每个面向用户的操作都简化为一个明确的状态转变:
  • 存入: 转入 token0 和 token1,向用户铸造 LP,价格不变。
  • 提取: 从用户销毁 LP,按池的当前比例转出 token0 和 token1,价格不变。
  • 交换: 转入一个代币,转出另一个代币;比率沿着 x · y = k 曲线移动(扣除费用);观察账户采样新价格。
费用收集(CollectProtocolFeeCollectFundFee)是由各自权限签署的单独交易;它不会在每次交换时发生。数学在 products/cpmm/math 中详述,指令集在 products/cpmm/instructions

何时选择 CPMM

在以下情况选择 CPMM:
  • 你正在启动一个新代币或新交易对,并且对哪个范围会看到交易没有强烈看法。
  • 一个或两个代币都使用 Token-2022 扩展。
  • 你想要一个简单的每笔交易费用模型,而不是动态的、基于 tick 的模型。
  • 你在集成并想通过 Raydium 路由,而不承担 CLMM 头寸的复杂性。
在以下情况倾向 CLMM
  • 交易对是稳定的或高度相关的(稳定币兑稳定币、LST-SOL),你想在平价附近集中流动性。
  • 你是一个愿意积极管理范围以获得更高费用 APR 每单位 TVL 的做市团队。
在以下情况倾向 AMM v4
  • 你正在迁移现有 AMM v4 工具,而不是创建新池。
(注意:AMM v4 的 OpenBook 混合模式不再活跃 —— 这不再是选择 AMM v4 的理由。)

下一步

  • 账户 —— CPMM 池的六个 PDA 及其推导方式。
  • 数学 —— SwapBaseInputSwapBaseOutput、Token-2022 转账费处理、观察更新。
  • 指令 —— 完整的指令表面及账户列表。
  • 费用 —— 四向费用分配及如何收集。
  • 代码演示 —— 用于创建/交换/存入/提取的可运行 TypeScript 片段。
来源: