跳轉到主要內容

Documentation Index

Fetch the complete documentation index at: https://docs.raydium.io/llms.txt

Use this file to discover all available pages before exploring further.

本頁內容由 AI 自動翻譯,所有內容以英文版本為準。查看英文版 →
這是文件的變更日誌——從專案上線以來這些頁面更新的記錄。若要查看協議本身的歷史時間線,請參閱 introduction/history-and-milestones。這裡的每個條目都包含日期、受影響的章節清單、觸發因素,以及驗證日期,記錄鏈上狀態和程式源碼上次與書面內容進行交叉檢查的時間。

2026-05-18 — CLMM:極限訂單、單邊手續費、動態手續費

下一個 CLMM 發布版本新增三項流動性池級功能。這些功能在池建立時是可選的,並與現有的池和頭寸向後相容。

整合者須知

  • 極限訂單現在是一級 CLMM 原始物件。流動性提供者可在支援此功能的池上開啟單刻度訂單;當交換跨越該刻度時,訂單會按先進先出原則成交,離線驗證者(limit_order_admin)可在所有者離線時完成成交輸出。七個新的 SDK 方法(openLimitOrderincreaseLimitOrderdecreaseLimitOrdersettleLimitOrdercloseLimitOrdercloseAllLimitOrdersettleAllLimitOrder)以及 /limit-order/ 下的三個新 Temp API 端點(活躍訂單、每位使用者歷史記錄、每個 PDA 事件日誌)涵蓋完整流程。
  • **單邊手續費(CollectFeeOn)**讓池可從輸入端收取交換手續費(舊版,模式 0)、始終從 token_0 收取(模式 1),或始終從 token_1 收取(模式 2)。在交易對其中一端是標準記帳代幣時很有用。
  • 動態手續費讓池可選擇啟用波動率追蹤的附加費用,隨著快速刻度移動而上升,隨時間推移而衰減,由每層級 DynamicFeeConfig 和每個池 DynamicFeeInfo 校準。新的 /main/clmm-dynamic-config 端點提供層級清單。
  • 新指令 CreateCustomizablePool 在池建立時公開所有三個參數。傳統 CreatePool 繼續適用於預設手續費、無極限訂單的池。
  • 索引器破壞性變更PoolState 上的每方向成交量計數器(swap_in_amount_token_{0,1}swap_out_amount_token_{0,1})和終身手續費計數器(total_fees_token_{0,1}total_fees_claimed_token_{0,1})被移除到填充區以騰出空間給 fee_ondynamic_fee_info。直接讀取這些欄位的索引器必須遷移到鏈上 Observation 環或 API。

為何這很重要(對於交易者、流動性提供者和整合者)

  • 交易者在長尾和事件驅動交易對上獲得更緊密的報價:動態手續費讓池吸收來自成交者的波動率附加費用,而無需流動性提供者主動擴大區間,極限訂單階梯在特定價格深化鏈上流動性,而無需承諾池寬資本。
  • 流動性提供者除了集中區間和全域頭寸外,還獲得第三種策略:停泊精確價格訂單,當價格到訪時成交,結算為報價代幣。成交部分無需主動再平衡。
  • 整合者可確定地建立動態手續費池模型——演算法和參數完全在鏈上,校準層級可查詢,交換路徑形狀不變(僅每步的手續費會變化)。

程式中的變更

新帳戶

  • DynamicFeeConfig — 每層級校準記錄(濾波週期、衰減週期、縮減因子、動態手續費控制、最大波動率累加器)。由 CreateDynamicFeeConfig(管理員)建立,在啟用動態手續費時由 CreateCustomizablePool 參考。
  • LimitOrderState — 每筆訂單帳戶(PDA 種子:[owner, limit_order_nonce, order_nonce])保存池、刻度、邊、輸入金額、未成交比率、FIFO 隊列階段和簿記快照。生命週期隱含(filled_amount vs total_amount,加上帳戶存在性):Open → Filled → Settled → Closed
  • LimitOrderNonce — 每個 (owner, nonce_index) 的單調遞增計數器,用於取得極限訂單 PDA 種子。nonce_index: u8 讓同一所有者將訂單分割成最多 256 個獨立的 nonce 流。
請參閱 Accounts → DynamicFeeConfig and DynamicFeeInfoAccounts → LimitOrderState

PoolState 重組

欄位群組舊版配置新版配置
每方向成交量計數器swap_in_amount_token_0swap_out_amount_token_0swap_in_amount_token_1swap_out_amount_token_1折入 padding5: [u128; 4]
終身手續費計數器total_fees_token_0total_fees_claimed_token_0total_fees_token_1total_fees_claimed_token_1折入 padding6: [u64; 4]
單邊手續費fee_on: u8(0 = FromInput、1 = Token0Only、2 = Token1Only)
動態手續費dynamic_fee_info: DynamicFeeInfo(嵌入)
總帳戶大小不變。索引器:關閉 PoolState 的成交量追蹤,改用 Observation 環或 API。已棄用的計數器在現有池上未清零(它們保存上次碰巧保有的任何值),所以升級後重新讀取它們將返回過時資料。

TickState 新增項(無破壞性變更)

四個新欄位在 TickState 末尾新增,替代其部分尾部填充:
  • order_phase: u64 — 計數器,用於區分此刻度的極限訂單隊列。
  • orders_amount: u64 — 所有此刻度開放訂單提交的總輸入(並非全部完全未成交)。
  • part_filled_orders_remaining: u64 — 目前正被交換消耗的隊列中尚未成交的輸入。
  • unfilled_ratio_x64: u128 — Q64.64 比率,用於計算每筆訂單的成交份額。
刻度陣列配置、大小和 PDA 種子保持不變。

新指令

  • CreateDynamicFeeConfig(管理員) — 建立校準的 DynamicFeeConfig 層級。權限:與 CreateAmmConfig 相同的財庫多簽。
  • UpdateDynamicFeeConfig(管理員) — 更新現有層級的參數。
  • CreateCustomizablePool — 池建立入口點,公開 collect_fee_onenable_dynamic_feedynamic_fee_config。與 CreatePool 並存;我們建議任何需要新參數的新池都使用 CreateCustomizablePool
  • OpenLimitOrder — 開啟單刻度極限訂單。提升 LimitOrderNonce,分配 LimitOrderState,將訂單插入刻度的 FIFO 隊列。
  • IncreaseLimitOrder / DecreaseLimitOrder — 調整訂單的未成交部分。在完全成交的訂單上還原為 InvalidOrderPhase
  • SettleLimitOrder — 掃描已成交的輸出至所有者的 ATA。呼叫者可以是所有者或池的 limit_order_admin 驗證者。
  • CloseLimitOrder — 關閉完全結算的訂單以回收租金。

SwapV2 行為變更

交換路徑本身形狀不變,但現在沿途發生三件事:
  1. 動態手續費(啟用時):池的 DynamicFeeInfo 在每一步更新(衰減 → 累積 → 上限),產生的附加費用新增到該步的基礎手續費之上。
  2. 極限訂單匹配(當步驟跨越有開放訂單的初始化刻度時):交換輸入的一部分按先進先出消耗以成交該刻度的隊列,unfilled_ratio_x64 原子地更新。
  3. 單邊手續費路由(當 fee_on != 0 時):無論交換方向如何,手續費都從 token_0token_1 取得,而非始終從輸入端取得。
當池以舊版預設值建立時,這些都是無操作的。詳見 Instructions → SwapV2 的更新狀態變更矩陣。

新錯誤代碼

ErrorCode 列舉在此版本被重新編號:五個舊版變體(LOKZeroMintAmountInvalidLiquidityTransactionTooOldInvalidRewardDesiredAmount)被移除,十一個新變體被附加。因為 Anchor 從 6000 開始按列舉順序編號錯誤,已移除位置之後的每個錯誤代碼都已轉移——硬編碼數值代碼的用戶端需要重新映射。 新代碼為:
  • 6040 OrderAlreadyFilled
  • 6041 InvalidOrderPhase
  • 6042 InvalidLimitOrderAmount
  • 6043 OrderPhaseSaturated
  • 6044 InvalidDynamicFeeConfigParams
  • 6045 InvalidFeeOn
  • 6046 ZeroSqrtPrice
  • 6047 ZeroLiquidity
  • 6048 MissingBaseFlag
  • 6049 MissingMintAccount
  • 6050 MissingTokenProgram2022
完整字串和所有 CLMM 錯誤的轉移後表格在 Error codes

SDK 中的變更(@raydium-io/raydium-sdk-v2

  • raydium.clmm 上的新方法createCustomizablePoolopenLimitOrderincreaseLimitOrderdecreaseLimitOrdersettleLimitOrdersettleAllLimitOrdercloseLimitOrdercloseAllLimitOrder
  • raydium.api 上的新 REST 幫手getClmmDynamicConfigsgetClmmLimitOrderConfigs
  • 新型別CollectFeeOn 列舉、DynamicFeeConfigDynamicFeeInfoLimitOrderStateLimitOrderConfig
  • 內部重組utils/ 移至 libraries/。套件出口不變;只有 @raydium-io/raydium-sdk-v2/utils/... 下的深層匯入需更新為 …/libraries/...
端到端 TypeScript 逐步解說位於 products/clmm/code-demos

API 中的變更

  • api-v3/main/ 下的兩個新端點:
    • GET /main/clmm-dynamic-configDynamicFeeConfig 層級清單。
    • GET /main/clmm-limit-order-config — 每個池的極限訂單配置。
  • temp-api-v1/limit-order/ 下的三個新端點:
    • GET /limit-order/order/list?wallet=… — 錢包目前停泊的訂單(開放和部分成交,從索引器的 Redis 快取提供;相同負載通過 totalAmount / filledAmount / pendingSettle 涵蓋兩個階段)。
    • GET /limit-order/history/order/list-by-user?wallet=… — 錢包的歷史極限訂單。可選篩選器:poolIdmint1mint2hideCancel。通過 nextPageId / size(最多 100)進行遊標分頁。
    • GET /limit-order/history/event/list-by-pda?pda=… — 每個 PDA 的事件日誌(open / increase / decrease / settle / close),適用於一個或多個逗號分隔的極限訂單 PDA。通過 nextPageId / size(最多 100)進行遊標分頁。
全部五個都在 API 參考標籤頁中記載。

權限表面

limit_order_admin 是離線營運驗證者,不是多簽。它只能在現有訂單上呼叫 SettleLimitOrderCloseLimitOrder,成交的輸出始終落入所有者的 ATA。它無法變更池欄位、開啟或修改訂單,也無法為其他任何事項簽署。詳見 Admin keys and multisig → CLMM

更新的頁面

  • products/clmm/overview — 新「最新消息」章節和更新的後續步驟指標。
  • products/clmm/accounts — 三個新帳戶、PoolState 重組帶遷移警告、TickState 新增項、新 PDA 幫手。
  • products/clmm/instructions — 七個新指令、SwapV2 行為附錄、更新的狀態變更矩陣。
  • products/clmm/fees — 單邊手續費章節、動態手續費章節含參數表。
  • products/clmm/math — 極限訂單匹配虛擬碼、動態手續費推導。
  • products/clmm/code-demoscreateCustomizablePool 示範、完整極限訂單逐步解說、新陷阱。
  • algorithms/clmm-math — 交叉參考多刻度交換迴圈中的極限訂單匹配和動態手續費。
  • sdk-api/typescript-sdk — CLMM 模組新增項章節、utils/libraries/ 遷移注記。
  • api-reference/openapi/api-v3.yaml — 兩個新端點含回應方案。
  • api-reference/openapi/temp-api-v1.yaml — 三個新極限訂單端點(/limit-order/order/list/limit-order/history/order/list-by-user/limit-order/history/event/list-by-pda)含其請求和回應方案。
  • api-reference/api-v3/overview — 新 CLMM 設定端點的注記。
  • api-reference/temp-api-v1/overview — 新活躍訂單、按使用者歷史和按 PDA 事件端點的注記。
  • reference/error-codes — 十一個新 CLMM 錯誤代碼(6040–6050)加五個已移除舊版代碼;移除點後的數值代碼已轉移。
  • security/admin-and-multisig — 新 DynamicFeeConfig 管理員列含有 limit_order_admin 驗證者列,說明了界限權限。
驗證依據
  • raydium-clmm 源碼。
  • @raydium-io/raydium-sdk-v2 源碼。
  • api-v3temp-api-v1 源碼。

2026-04-26 — 首次發布

Raydium 文件集首次公開發布。 驗證依據
  • Solana mainnet-beta 上的實時程式部署。
  • @raydium-io/raydium-sdk-v2@0.2.42-alpha
  • Raydium 公開文件和鏈上參考至 2026 年 4 月。
往後,每個協議升級、審計或文件修訂都會在此檔案中新增一個條目。

文件慣例

  • 版本控制:本文件使用基於日曆的版本控制 (YYYY-MM-DD)。每次更新在檔案頂部建立新條目。
  • 驗證日期:每個條目記錄內容上次與鏈上/API 狀態和程式源碼進行交叉檢查的時間。如未載明,應假定為條目的主要日期。
  • 破壞性變更:在受影響頁面上用方框警告標出,在下面的條目中標記。
  • 涵蓋範圍:此變更日誌涵蓋文件集本身。協議本身的歷史時間線位於 introduction/history-and-milestones,是「Raydium 上何時發生 X」的事實來源。

更正

如果在此文件中發現錯誤,請在文件存放庫上提交問題或拉取請求。更正將被記錄在此變更日誌中。

指標