本頁內容由 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_coin或need_take_pnl_pc,取決於交換輸入是哪一側。
TakePnl 移動代幣而不改變價格。
OpenBook 的 PnL(歷史)
已移除。 OpenBook 整合已從程序中移除,因此本節描述的第二個 PnL 流不再生成。
total_pnl_{coin,pc} 計數器現在是已棄用的欄位 — 它們保持凍結的歷史值,永遠不會更新。0.03% 協議費用路徑(上方)不受影響,仍然活躍。MonitorStep 期間結算到池金庫中,程序將其記入 state_data.total_pnl_{coin,pc} 作為信息計數器。
- 當池的發佈網格在曲線價格周圍正確校準時,OpenBook 成交往往對池費用為正 — AMM 實際上在 OpenBook 上做市並賺取做市商回扣。
- 當 OpenBook 暫停或事件隊列填滿時,池可能會持有以不利價格成交的過時訂單,產生負 PnL。這種操作耦合是遠離混合設計的動機之一。
收集
管理員(Raydium 多簽)呼叫WithdrawPnl 將 need_take_pnl_* 清掃到在程序的 AmmConfig 上配置的池級「PnL 所有者」帳戶(一個不同的、程序範圍的配置 — 不是每個池的 CPMM 風格 AmmConfig)。清掃:
- 從池金庫將
need_take_pnl_coin/need_take_pnl_pc轉移到 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 重交換上: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。
接下來去哪裡
products/amm-v4/math— 曲線內的交易費用推導。products/amm-v4/instructions—WithdrawPnl/SetParams帳戶列表。reference/fee-comparison— 並排矩陣。
- Raydium AMM 程序 —
raydium-io/raydium-amm - 鏈上 AMM v4 費用分子/分母欄位(針對主網
AmmInfo帳戶驗證)。

