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

接下來去哪裡

來源: