本頁內容由 AI 自動翻譯,所有內容以英文版本為準。查看英文版 →
一段摘要
AMM v4 是 Raydium 推出時的程式。它維持常數乘積不變式(x · y = k)。它原本設計為混合 AMM:每個池位於 OpenBook(前身為 Serum)限價訂單簿市場之上,並將其曲線的部分鏡像為該簿上的限價單,因此使用者和聚合器可以直接針對池交換(AMM 路徑)或針對池在 OpenBook 上擁有的限價單交換(CLOB 路徑)。OpenBook 依賴已從程式中移除 — 池不再在 OpenBook 上發佈或維護訂單,所有目前交換流量都通過僅限 AMM 的 V2 交換進入點。不支援 Token-2022。AMM v4 仍作為常數乘積 AMM 完全運作 — 每個池持續交易、費用仍在累積、LP 仍在賺取 — 但 UI 和 SDK 預設新池建立為 CPMM,因為 CPMM 更便宜且支援更多鑄幣類型。
混合歷史(背景)
在推出時,在 Serum 訂單簿旁邊建立池有風險會分散流動性。混合設計將 AMM 的曲線發佈到簿上作為限價單,因此訂單簿路由器可以免費看到池的深度。在 2022 年末 OpenBook 從 Serum 分叉後,程式繼續針對 OpenBook 運作,變更最少。隨著 CPMM 和鏈上聚合器成熟,訂單簿端的好處褪去,AMM v4 的 OpenBook 整合最終被關閉 — 曲線現在是池的唯一執行表面。AMM v4 提供的功能(CPMM 沒有)
- 舊版交易對的深度流動性。 具有大量 AMM v4 TVL 的主要交易對(SOL-USDC、mSOL-USDC 等)仍然是這些交易最深的場所。
AMM v4 不提供的功能
- Token-2022。 不支援。AMM v4 在 Token-2022 存在之前編寫;其帳戶佈局假設經典 SPL Token。
- v1 交換上的低帳戶數。 舊版
SwapBaseIn/SwapBaseOut佈局仍將 OpenBook 市場帳戶作為位置佔位符(接受但不再驗證或使用)。使用SwapBaseInV2/SwapBaseOutV2來移除它們並縮小交易。 - 低計算使用量。 即使 V2 交換的成本也比 CPMM 交換多。
- 預設新池流程。 新池使用
Initialize2建立(舊版Initialize/PreInitialize進入點已移除,現在會回復)。Raydium UI、SDK 和api-v3.raydium.io不再顯示「建立 AMM v4 池」按鈕 — 新池的預設路徑是 CPMM。
AMM v4 與 CPMM 的差異
更多費用詳情:
products/amm-v4/fees 和 reference/fee-comparison。
心智模型
今天的 AMM v4 池是常數乘積x · y = k AMM。兩個金庫完全可用於曲線 — 沒有部分被提交給 OpenBook 訂單,因為 OpenBook 整合已被移除。操作是交換(使用者 ↔ 池,通過 SwapBaseInV2 / SwapBaseOutV2)和存入 / 提取(LP 操作)。舊的機制(MonitorStep)已移除,若被呼叫將回復。
歷史心智模型(停用前): 每個金庫的一部分被託管為開放簿訂單;已填充訂單的結算在交換和 LP 操作期間發生;路由交換可以針對池自己的 OpenBook 訂單填充。今天這些都不在運作中。
為什麼 CPMM 是推薦的預設
CPMM 移除了 OpenBook 依賴。權衡如下:- CPMM 交易在計算上便宜 2×–3×。
- CPMM 支援 Token-2022 鑄幣。
- 聚合器現在通過 Raydium SDK 直接整合 CPMM,因此訂單簿可見性好處在很大程度上已過時。
- 操作風險:歷史上 OpenBook 中斷或暫停可能會降低 AMM v4 池(過時訂單)。由於 OpenBook 依賴現已從程式中移除,該耦合已消失 — 但 CPMM 仍然是推薦的、成本更低的預設。
protocol-overview/versions-and-migration 以獲得遷移指導。
何時 AMM v4 是正確選擇
- 你正在路由交換,其中一個候選池是具有最佳價格的 AMM v4 池。
- 你正在提供或管理現有 AMM v4 池中的流動性 — 遷移是一個選擇,不是必需的;池繼續作為純 AMM 運作。
- 你維護針對 AMM v4 構建的整合,沒有理由遷移。
後續步驟
- 帳戶 — AMM 的帳戶,加上(現已殘留的)OpenBook 參考欄位。
- 數學 — 常數乘積交換數學與 AMM v4 的費用慣例。
- 指令 — 指令表面:
Initialize2、Swap(v1 / V2)、Deposit、Withdraw、WithdrawPnl、SetParams。 - 費用 — 0.25% 分割及其收集方式。
- 程式碼示例 — 交換和 LP 流程的 TypeScript 示例。
reference/program-addresses用於規範程式 ID- OpenBook 程式儲存庫用於此頁面參考的對方帳戶

