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

唯一发布的费率层级

与 CPMM 和 CLMM 不同,AMM v4 没有 AmmConfig 账户。费用直接存储在每个池的 AmmInfo.fees 结构中,在池创建时固定。以下是覆盖几乎所有活跃 AMM v4 池的默认值: 注意 pnl_numerator / pnl_denominator 是交易费的一个分数,而不是 交易量的分数 — 这是常见的误读。LP 份额是补集(费用的 88% = 交易量的 0.22%),是隐含的;没有单独的”LP 份额”分子。 少数早期池使用了不同的分子创建;在引用之前始终读取 AmmInfo.fees 没有基金费没有创建者费 行:这些是 CPMM/CLMM 的发明,在 AMM v4 的原始费用模型中不存在。

分割如何计算

在每次交换时,池从输入金额中收取总交易费,然后分配:
  • lp_portion 留在金库中,对下一个 k 有贡献。LP 通过稍后赎回 LP 代币来获得它。
  • pnl_portion 增加 AmmInfo.state_data.need_take_pnl_coinneed_take_pnl_pc,取决于交换输入是哪一侧。
与 CPMM 相同的不变量保护技巧:PnL 金额物理上位于金库中,但从曲线中使用的储备中减去,因此 TakePnl 移出代币而不改变价格。

OpenBook 产生的 PnL(历史)

已移除。 OpenBook 集成已从程序中移除,因此本节描述的第二个 PnL 流不再生成。total_pnl_{coin,pc} 计数器现在是已弃用的字段 — 它们保持冻结的历史值,永远不会更新。0.03% 协议费路径(上文)不受影响,仍然活跃。
历史上,AMM v4 有一个第二个类似费用的收入流:当其在 OpenBook 上的限价单成交时,池可能是成交的接收方,并赚取或支付市场的做市商/接收方价差。这些 PnL 事件在 MonitorStep 期间结算到池金库中,程序将其记入 state_data.total_pnl_{coin,pc} 作为信息计数器。
  • 当池的发布网格在曲线价格周围正确校准时,OpenBook 成交往往对池费用为正 — AMM 实际上在 OpenBook 上做市并赚取做市商回扣。
  • 当 OpenBook 暂停或事件队列填满时,池可能会持有在不利价格成交的陈旧订单,产生负 PnL。这种操作耦合是放弃混合设计的动机之一。
这个 OpenBook PnL 不同于 0.03% 协议费。OpenBook PnL 直接增加池储备(按费用分割比例使 LP 和协议受益),而 0.03% 协议费专门标记为管理员清扫。随着 OpenBook 一侧关闭,今天唯一的费用累积是 AMM 交换上的 0.25% 及其 22/3 分割。

收集

管理员(Raydium 多签)调用 WithdrawPnlneed_take_pnl_* 清扫到程序的 AmmConfig 上配置的池级”PnL 所有者”账户(一个不同的、程序范围的配置 — 不是每池的 CPMM 风格 AmmConfig)。清扫:
  1. 从池金库将 need_take_pnl_coin / need_take_pnl_pc 转移到 PnL 目标。
  2. 将计数器清零。
不再有 OpenBook 结算步骤。如果金库余额不足以覆盖累积的 PnL,指令现在直接返回 TakePnlError。该操作不移动曲线 — LP 在 WithdrawPnl 调用中不应看到任何价格变化。注意 WithdrawPnl 账户布局在 2026-07 升级中改变(见指令)。

LP 费用赎回

没有专门的”收集 LP 费用”指令。LP 费用在金库中累积并随时间增加 k;LP 通过 Withdraw 燃烧 LP 代币来实现它们。LP 代币的价值随着 (coin_reserve_effective, pc_reserve_effective) 增长而单调增长。

可视化:1,000 USDC 交易量的去向

在针对默认参数池的 1,000 美元 USDC 重交换中:
与 CPMM AmmConfig[0](0.25% 层级,无创建者费)比较:LP 获得 $2.10,协议 $0.30,基金 $0.10。CPMM 通过从 AMM v4 等效层级中本应属于 LP 的部分中切割出来引入基金行。

比较表

完整矩阵在 reference/fee-comparison

集成商注意事项

  • 报价。 通过 SDK 或 api-v3.raydium.io/pools/info/ids 获取 AmmInfo。储备现在仅限金库,因此你可以直接针对金库余额报价 — 只需记住减去 need_take_pnl_*(累积的 PnL 保存在金库中但从曲线中排除)。
  • 陈旧的费用参数。 原则上 SetParams 可以改变 swap_fee_numerator,但实际上 Raydium 多签从未改变任何活跃池的默认值。不过,始终从链上状态读取而不是硬编码。
  • 无奖励。 AMM v4 不支持池上奖励排放。遗留生态系统农场(Farm v3 / v5 / v6)是质押层等价物 — 见 products/farm-staking

接下来去哪里

来源: