本页内容由 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 端点和 Web UI 的”创建池”流程默认使用的方案。
CPMM 提供的功能
创建者费用收集更新。 任何支付者都可以触发
CollectCreatorFeePermissionless。资金仍然只流向池创建者的规范代币账户,现有的创建者签名 CollectCreatorFee 仍然可用。自 2026-09-19 起,两条路径都会在支付时将已累积创建者费用的可配置份额交给协议,并且都需要追加在其账户列表末尾的额外账户——CollectCreatorFee 一个,CollectCreatorFeePermissionless 两个。详见 Instructions 和 Fees。- Token-2022 与经过审核的扩展允许列表。 CPMM 不接受任意的 Token-2022 铸币。程序在池创建时强制执行安全扩展的白名单:
TransferFeeConfig、MetadataPointer、TokenMetadata、InterestBearingConfig和ScaledUiAmount。铸币上的任何其他扩展都会导致Initialize以NotSupportMint拒绝 — 除非铸币已通过其SupportMintAssociatedPDA 注册,这是 2026-09 升级移除硬编码铸币白名单后唯一的绕过方式。转账费用特别会影响交换数学,并应用在交易的正确一侧 — 详见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 的区别
关于迁移故事的更深入讨论见
protocol-overview/versions-and-migration。
心智模型
CPMM 池是一个程序所有的对象,持有三个余额:vault0(token0)、vault1(token1)和 LP 铸币的供应量。LP 铸币的供应量追踪存款者对池的权益;代币金库持有实际资产。其他一切 — 权限 PDA、观察账户、费用配置指针 — 都是簿记,用来使这个三变量关系可交易、可收费和可观察。
每个面向用户的操作都会归结为一个明确定义的状态转换:
- 存入: 转入 token0 和 token1,向用户铸造 LP,价格不变。
- 提取: 从用户销毁 LP,按池的当前比率转出 token0 和 token1,价格不变。
- 交换: 转入一个代币,转出另一个;比率沿
x · y = k曲线移动(减去费用);观察账户采样新价格。
products/cpmm/math,指令集详见 products/cpmm/instructions。
何时选择 CPMM
在以下情况下选择 CPMM:- 你正在启动新代币或新交易对,对哪个范围会看到交易没有强烈意见。
- 一个或两个代币使用 Token-2022 扩展。
- 你想要简单的按交易费用模型而不是动态的、基于 tick 的模型。
- 你正在集成并想通过 Raydium 路由,而不想承担 CLMM 头寸的复杂性。
- 交易对是稳定的或高度相关的(稳定币对稳定币、LST-SOL),你想在平价附近集中流动性。
- 你是一个愿意主动管理范围以获得更高费用 APR(每美元 TVL)的做市团队。
- 你正在迁移现有的 AMM v4 工具,并且不是在创建新池。
接下来去哪里
- Accounts — CPMM 池的六个 PDA 及其推导方式。
- Math —
SwapBaseInputvsSwapBaseOutput、Token-2022 转账费用处理、观察更新。 - Instructions — 完整的指令表面及账户列表。
- Fees — 四向费用分配及收集方式。
- Code demos — 创建/交换/存入/提取的可运行 TypeScript 代码片段。

