跳轉到主要內容

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。每筆條目均包含日期、受影響章節清單、觸發原因,以及「核對日期」——表示鏈上狀態與程式原始碼最後一次與文字內容交叉核對的時間。

待發布 — CLMM:限價單、單邊手續費、動態手續費

下一個 CLMM 版本新增三項池級功能。這些功能在建立池時為選用,並向後相容現有池與倉位。

整合者快速摘要

  • 限價單現已成為 CLMM 的一級原語。LP 可在支援限價單的池上開立單 tick 訂單;當 swap 跨越該 tick 時,訂單依 FIFO 順序成交,鏈下 keeper(limit_order_admin)可在訂單擁有者離線的情況下結算已成交的輸出。七個新 SDK 方法(openLimitOrderincreaseLimitOrderdecreaseLimitOrdersettleLimitOrdercloseLimitOrdercloseAllLimitOrdersettleAllLimitOrder)以及 /limit-order/ 下的三個新 Temp API 端點(活躍訂單、逐用戶歷史、逐 PDA 事件日誌)涵蓋完整流程。
  • **單邊手續費(CollectFeeOn)**讓池可從輸入端收取 swap 手續費(舊版,模式 0)、始終從 token_0 收取(模式 1``),或始終從 token_1收取(模式2`)。當交易對一端為標準計價代幣時特別有用。
  • 動態手續費讓池可選用波動率追蹤附加費——附加費隨 tick 快速移動而上升,並隨時間衰減,由每層的 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})已被廢棄為 padding,以騰出空間給 fee_ondynamic_fee_info。直接讀取這些欄位的索引器必須遷移至鏈上 Observation 環形緩衝區或 API。

為何重要(對交易者、LP 與整合者)

  • 交易者可在長尾及事件驅動的交易對上獲得更緊的報價:動態手續費讓池在不需 LP 主動擴大範圍的情況下吸收波動率溢價,而限價單梯形結構在特定價格上加深鏈上流動性,無需承諾全範圍資本。
  • LP 在集中範圍倉位與全範圍倉位之外多了第三種策略:掛出精確價格訂單,待價格到達時成交,再結算為報價代幣,已成交部分無需主動再平衡。
  • 整合者可確定性地模擬動態手續費池——算法與參數完全存於鏈上,校準層級可查詢,swap 路徑形狀不變(僅每步手續費有所不同)。

程式端異動說明

新帳戶

  • DynamicFeeConfig — 每層校準紀錄(篩選週期、衰減週期、衰減係數、動態手續費控制、最大波動率累加器)。由 CreateDynamicFeeConfig(管理員)建立,當動態手續費啟用時由 CreateCustomizablePool 引用。
  • LimitOrderState — 每筆訂單的帳戶(PDA seeds:[owner, limit_order_nonce, order_nonce]),儲存池、tick、方向、輸入金額、未成交比例、FIFO 批次階段及記帳快照。生命週期由 filled_amount 對比 total_amount 加上帳戶是否存在隱含決定:Open → Filled → Settled → Closed
  • LimitOrderNonce — 每個(owner, nonce_index)的單調遞增計數器,用於生成限價單 PDA seeds。nonce_index: u8 讓同一擁有者可將訂單分割至多達 256 個獨立 nonce 流。
詳見帳戶 → DynamicFeeConfig 與 DynamicFeeInfo帳戶 → 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 末尾新增四個欄位,取代部分尾部 padding:
  • order_phase: u64 — 用於區分同一 tick 上不同限價單批次的計數器。
  • orders_amount: u64 — 該 tick 所有開放訂單承諾的輸入總量(並非全部均為完全未成交)。
  • part_filled_orders_remaining: u64 — 目前正被 swap 消耗之批次中尚未成交的輸入量。
  • unfilled_ratio_x64: u128 — Q64.64 比例,用於計算每筆訂單的成交份額。
Tick 陣列佈局、大小及 PDA seeds 均未改變。

新指令

  • CreateDynamicFeeConfig(管理員) — 建立已校準的 DynamicFeeConfig 層。授權方:與 CreateAmmConfig 相同的國庫多簽。
  • UpdateDynamicFeeConfig(管理員) — 更新現有層的參數。
  • CreateCustomizablePool — 池建立入口,公開 collect_fee_onenable_dynamic_feedynamic_fee_config。與 CreatePool 共存;對於需要新設定項的新池,建議使用 CreateCustomizablePool
  • OpenLimitOrder — 開立單 tick 限價單。遞增 LimitOrderNonce、配置 LimitOrderState、將訂單插入該 tick 的 FIFO 批次。
  • IncreaseLimitOrder / DecreaseLimitOrder — 調整訂單未成交部分。對完全成交的訂單執行時,回傳 InvalidOrderPhase
  • SettleLimitOrder — 將已成交的輸出轉入擁有者的 ATA。呼叫方可為擁有者或池的 limit_order_admin keeper。
  • CloseLimitOrder — 關閉已完全結算的訂單以取回租金。

SwapV2 行為變更

swap 路徑形狀不變,但沿途新增三件事:
  1. 動態手續費(啟用時):每步更新池的 DynamicFeeInfo(衰減 → 累積 → 上限),並在該步的基礎手續費之上加上附加費。
  2. 限價單撮合(當步驟跨越含開放訂單的已初始化 tick 時):部分 swap 輸入依 FIFO 順序消耗該 tick 的批次,並原子更新 unfilled_ratio_x64
  3. 單邊手續費路由(當 fee_on != 0 時):無論 swap 方向如何,手續費均從 token_0token_1 收取,而非始終從輸入端收取。
以上三項在使用舊版預設建立的池上均為空操作。詳見指令 → 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 錯誤的位移後對照表詳見錯誤碼

SDK 端異動說明(@raydium-io/raydium-sdk-v2

  • raydium.clmm 新方法createCustomizablePoolopenLimitOrderincreaseLimitOrderdecreaseLimitOrdersettleLimitOrdersettleAllLimitOrdercloseLimitOrdercloseAllLimitOrder
  • raydium.api 新 REST 輔助方法getClmmDynamicConfigsgetClmmLimitOrderConfigs
  • 新型別CollectFeeOn 列舉、DynamicFeeConfigDynamicFeeInfoLimitOrderStateLimitOrderConfig
  • 內部重組utils/ 已移至 libraries/。套件 barrel 不變;只有使用 @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)。以 nextPageId / size 進行游標分頁(最多 100 筆)。
上述五個端點均已在 API Reference 頁籤中說明。

授權範圍

limit_order_admin 是鏈下的操作型 keeper,非多簽。它只能對現有訂單呼叫 SettleLimitOrderCloseLimitOrder,且結算輸出始終轉入擁有者的 ATA。它無法修改池欄位、開立或修改訂單,也無法為其他任何操作簽名。詳見管理員金鑰與多簽 → 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 — 多 tick swap 迴圈中限價單撮合與動態手續費的交叉引用。
  • 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 keeper 欄位,附有有限授權說明。
核對依據
  • 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
  • 截至 2026 年 4 月的 Raydium 公開文件與鏈上參考資料。
此後,每次協議升級、審計或文件修訂均會在本檔案中新增一筆條目。

文件規範

  • 版本管理:本文件集採用以日期為基礎的版本管理(YYYY-MM-DD)。每次更新在檔案頂部新增一筆條目。
  • 核對日期:每筆條目記錄內容最後一次與鏈上/API 狀態及程式原始碼交叉核對的時間。若未特別說明,以條目的主日期為準。
  • 重大變更:在受影響頁面以框線警告標示,並在以下條目中加以標記。
  • 涵蓋範圍:本更新日誌涵蓋文件集本身。協議的歷史時間軸存放於 introduction/history-and-milestones,為「Raydium 上 X 事件發生時間」的權威來源。

修正事項

若你在本文件中發現錯誤,請在文件儲存庫開立 issue 或提交 pull request。修正內容將記錄於本更新日誌中。

相關連結