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 方法(openLimitOrder、increaseLimitOrder、decreaseLimitOrder、settleLimitOrder、closeLimitOrder、closeAllLimitOrder、settleAllLimitOrder)以及/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_on和dynamic_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 流。
PoolState 結構調整
| 欄位群組 | 舊版佈局 | 新版佈局 |
|---|---|---|
| 逐方向交易量計數器 | swap_in_amount_token_0、swap_out_amount_token_0、swap_in_amount_token_1、swap_out_amount_token_1 | 折入 padding5: [u128; 4] |
| 累計手續費計數器 | total_fees_token_0、total_fees_claimed_token_0、total_fees_token_1、total_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 比例,用於計算每筆訂單的成交份額。
新指令
CreateDynamicFeeConfig(管理員) — 建立已校準的DynamicFeeConfig層。授權方:與CreateAmmConfig相同的國庫多簽。UpdateDynamicFeeConfig(管理員) — 更新現有層的參數。CreateCustomizablePool— 池建立入口,公開collect_fee_on、enable_dynamic_fee及dynamic_fee_config。與CreatePool共存;對於需要新設定項的新池,建議使用CreateCustomizablePool。OpenLimitOrder— 開立單 tick 限價單。遞增LimitOrderNonce、配置LimitOrderState、將訂單插入該 tick 的 FIFO 批次。IncreaseLimitOrder/DecreaseLimitOrder— 調整訂單未成交部分。對完全成交的訂單執行時,回傳InvalidOrderPhase。SettleLimitOrder— 將已成交的輸出轉入擁有者的 ATA。呼叫方可為擁有者或池的limit_order_adminkeeper。CloseLimitOrder— 關閉已完全結算的訂單以取回租金。
SwapV2 行為變更
swap 路徑形狀不變,但沿途新增三件事:
- 動態手續費(啟用時):每步更新池的
DynamicFeeInfo(衰減 → 累積 → 上限),並在該步的基礎手續費之上加上附加費。 - 限價單撮合(當步驟跨越含開放訂單的已初始化 tick 時):部分 swap 輸入依 FIFO 順序消耗該 tick 的批次,並原子更新
unfilled_ratio_x64。 - 單邊手續費路由(當
fee_on != 0時):無論 swap 方向如何,手續費均從token_0或token_1收取,而非始終從輸入端收取。
新錯誤碼
本版本重新編號了ErrorCode 列舉:五個舊版變體(LOK、ZeroMintAmount、InvalidLiquidity、TransactionTooOld、InvalidRewardDesiredAmount)已移除,並在末尾新增十一個變體。由於 Anchor 從 6000 起按列舉順序編號錯誤,所有位於已移除位置之後的錯誤碼均已位移——硬編碼數字錯誤碼的客戶端需重新對照映射。
新增錯誤碼如下:
6040OrderAlreadyFilled6041InvalidOrderPhase6042InvalidLimitOrderAmount6043OrderPhaseSaturated6044InvalidDynamicFeeConfigParams6045InvalidFeeOn6046ZeroSqrtPrice6047ZeroLiquidity6048MissingBaseFlag6049MissingMintAccount6050MissingTokenProgram2022
SDK 端異動說明(@raydium-io/raydium-sdk-v2)
raydium.clmm新方法:createCustomizablePool、openLimitOrder、increaseLimitOrder、decreaseLimitOrder、settleLimitOrder、settleAllLimitOrder、closeLimitOrder、closeAllLimitOrder。raydium.api新 REST 輔助方法:getClmmDynamicConfigs、getClmmLimitOrderConfigs。- 新型別:
CollectFeeOn列舉、DynamicFeeConfig、DynamicFeeInfo、LimitOrderState、LimitOrderConfig。 - 內部重組:
utils/已移至libraries/。套件 barrel 不變;只有使用@raydium-io/raydium-sdk-v2/utils/...深層引入的程式碼需更新為…/libraries/...。
products/clmm/code-demos。
API 端異動說明
api-v3—/main/下新增兩個端點:GET /main/clmm-dynamic-config—DynamicFeeConfig層級清單。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=…— 某錢包的歷史限價單。可選篩選條件:poolId、mint1、mint2、hideCancel。以nextPageId/size進行游標分頁(最多 100 筆)。GET /limit-order/history/event/list-by-pda?pda=…— 單個或多個逗號分隔限價單 PDA 的事件日誌(open/increase/decrease/settle/close)。以nextPageId/size進行游標分頁(最多 100 筆)。
授權範圍
limit_order_admin 是鏈下的操作型 keeper,非多簽。它只能對現有訂單呼叫 SettleLimitOrder 和 CloseLimitOrder,且結算輸出始終轉入擁有者的 ATA。它無法修改池欄位、開立或修改訂單,也無法為其他任何操作簽名。詳見管理員金鑰與多簽 → CLMM。
已更新頁面
products/clmm/overview— 新增「新功能」區塊及更新後的後續步驟指引。products/clmm/accounts— 三個新帳戶、含遷移警告的PoolState結構調整說明、TickState新增欄位、新 PDA 輔助說明。products/clmm/instructions— 七個新指令、SwapV2行為補充說明、更新後的狀態變更矩陣。products/clmm/fees— 單邊手續費章節、含參數表格的動態手續費章節。products/clmm/math— 限價單撮合虛擬碼、動態手續費推導。products/clmm/code-demos—createCustomizablePool示範、完整限價單操作示範、新的常見陷阱說明。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_adminkeeper 欄位,附有有限授權說明。
raydium-clmm原始碼。@raydium-io/raydium-sdk-v2原始碼。api-v3與temp-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。修正內容將記錄於本更新日誌中。相關連結
introduction/history-and-milestones— 協議本身的時間軸。security/audits— 審計歷史。ray/protocol-fees— 協議手續費分配。reference/program-addresses— 程式 ID 權威來源。


