Skip to main content
本頁內容由 AI 自動翻譯,所有內容以英文版本為準。查看英文版 →
真實來源。 本頁是文件中唯一逐字列出程式位址的地方。其他頁面都連結到這裡。如果某個 ID 變更,只需在此更新,網站上的所有參考都會保持一致。在簽署真實交易前,務必針對即時 API(https://api-v3.raydium.io/main/info)交叉檢查數值。

Mainnet-beta

經驗法則:如果野外的程式 ID 與下表不符,不要簽署交易。 程式 ID 不符是在 Solana 上損失資金最簡單的方式。

鏈上程式

注意:
  • AMM v4 和 Farm v3/v5 保留用於現有池和頭寸。Raydium UI 和 SDK 將新池建立和新生態系農場分別路由到 CPMM、CLMM 和 Farm v6 — 見 protocol-overview/versions-and-migration。
  • 上面的 Farm v3 ID 同時用作 $RAY 單資產質押程式。LP 質押的行為與 Farm v3 相同。
  • Stable AMM 是一個獨立程式,AMM 路由程式可以與 AMM v4、CPMM 和 CLMM 一起針對它。與其他三個程式相比,流動性較少,SDK 不為其公開第一類 API;通過它路由的整合商通常透過路由器進行。
  • 原始碼可用性。 在上述鏈上程式中,只有 raydium-amm(AMM v4)、raydium-cp-swap(CPMM)和 raydium-clmm(CLMM)在 github.com/raydium-io 下提供公開原始碼儲存庫。Stable AMM、LaunchLab、AMM 路由、銷毀與賺取 / LP 鎖定和農場程式不公開 — 改為針對即時 API、鏈上位元組碼和 raydium-io/raydium-idl 中發佈的 IDL 驗證它們。

共用管理員授權

每個 Raydium 程式(包括 AMM v4)都共用一個硬編碼的管理員 Pubkey,用於指令級別的管理路徑存取控制。在 AMM v4 中是 config_feature::amm_owner::ID(限制 SetParams、CreateConfigAccount 和 UpdateConfigAccount,並用作預設 pnl_owner),在 Anchor 程式(CLMM、CPMM、LaunchLab、Lock)中是 admin::ID — 限制 CreateAmmConfig 或 UpdatePoolStatus 等路徑: 帳戶級別的操作授權(例如 CPMM/CLMM AmmConfig 上的 protocol_owner、fund_owner,或 LaunchLab GlobalConfig 上的遷移錢包)儲存在鏈上,可能與程式管理員不同。在發送高風險交易前,直接從相關設定帳戶讀取它們。

CPMM 權限 PDA 建立者授權

CreatePermissionPda 接受上述共用程式管理員或專用所有者。自 2026-09 CPMM 升級以來,ClosePermissionPda 接受相同的兩個簽署者;在此之前它僅限管理員。

支援代幣註冊表授權

CreateSupportMintAssociated 和 CloseSupportMintAssociated 接受共用程式管理員或下面程式自己的專用所有者。註冊代幣允許它通過該程式的 Token-2022 擴展允許清單 — 見 reference/token-2022-support。CPMM 和 CLMM 各自保留自己的註冊表 PDA 和自己的授權;任何一個金鑰都不適用於另一個程式。

CPMM 費用所有者錢包

自 2026-09 CPMM 升級以來,CreateAmmConfig 將這些固定金鑰寫入新設定的 protocol_owner 和 fund_owner,而不是複製管理員簽署者的金鑰。CollectProtocolFee 和 CollectFundFee 接受儲存在設定上的金鑰或共用程式管理員(|| crate::admin::ID),所以管理員仍然是被接受的簽署者 — 變更的只是收益預設流向的位置。
這些是程式寫入新設定的值,不是現有設定的描述。升級前建立的 AmmConfig 帳戶保留儲存在其上的任何內容。在建立收集交易前,務必從帳戶讀取 protocol_owner / fund_owner。

協議費用收集錢包

每個程式的交易費用協議端份額累積的地方。這些是普通的代幣持有錢包,所以單個位址持有混合的 SPL 代幣集(來自 SOL/USDC 池的 wSOL 和 USDC、來自 SOL/RAY 池的 wSOL 和 RAY 等)。 Stable AMM 的協議份額在保管庫內累積為 out_put.need_take_pnl_*,由 WithdrawPnl 掃除,而不是坐在常設錢包上。對於 CPMM,在建立收集交易前從特定 AmmConfig 讀取 protocol_owner — 2026-09 升級前建立的設定可能持有不同的金鑰。

超額 lamport 收集錢包

在 2026-09-09 升級的三個程式各自獲得了一個管理員指令,該指令返回在程式控制帳戶上持有的超過租金豁免最低額的 lamport,遵循 SIMD-0437 租金減少。每個程式硬編碼自己的目標錢包,每個都是專用金鑰 — 不是共用程式管理員。 CPMM 和 LaunchLab 另外接受共用程式管理員作為簽署者。AMM v4 僅接受上面的錢包 — 它沒有管理員後備。AMM v4 還在其 testnet 功能下編譯了一個單獨的測試網金鑰(75KWb5XcqPTgacQyNw9P5QU2HL3xpezEVcgsFCiJgTT)。 這些指令僅移動 lamport;它們永遠不會觸及代幣餘額、關閉帳戶或改變池狀態。見 products/amm-v4/instructions、products/cpmm/instructions 和 products/launchlab/instructions。

LaunchLab 委派設定建立者

CreateConfig 接受共用程式管理員或下面的委派授權。委派角色可以建立新的 GlobalConfig;它不能為現有帳戶呼叫僅限管理員的 UpdateConfig 路徑。

CLMM 受限發行人凍結授權

當 CLMM 池中的任一保管庫代幣的凍結授權是下面之一時,透過 V2 路徑開啟的新頭寸會凍結其頭寸 NFT 代幣帳戶。清單是 CLMM 程式中的 frozen_position_nft_authorities::IDS,其單一條目是發行人授權,CLMM 已移除的 Superstate 檢測也符合該授權。這些是僅用作匹配金鑰的基礎資產發行人授權。CLMM 池 PDA(不是發行人金鑰)成為頭寸 NFT 代幣的凍結授權。 清單在 CLMM 程式中硬編碼。新增或移除授權需要程式升級。

共用設定 / PDA 慣例

幾個 Raydium 程式公開設定帳戶,其公開金鑰是穩定的,並列在公開 API 上。優先使用 API 查詢而不是硬編碼:

池建立費用接收者

CPMM 和 AMM v4 都按確切位址驗證其池建立費用目標,所以它必須已經存在於你正在測試的任何叢集上。CLMM 沒有單獨的池建立費用。 AMM v4 還在其 testnet 功能下編譯 3TRTX4dXUpp2eqxi3tvQDFYUV7SdDJjcPE3Y4mbtftaX。CPMM 拒絕不符合 Anchor 的 ConstraintAddress(2012);AMM v4 拒絕 InvalidFee。

CLMM 限價單保管人

SettleLimitOrder 和 CloseLimitOrder 接受訂單自己的 owner 或下面的程式範圍保管人金鑰。保管人不能開啟、增加或減少訂單,輸出總是進入訂單所有者的帳戶 — 見 security/admin-and-multisig。 預設 CPMM AmmConfig 索引 0(標準 0.25% 池)費用參數,供參考: 見 products/cpmm/fees 瞭解分割如何組成,以及 reference/fee-comparison 瞭解跨產品矩陣。

PDA 種子

下面的種子是規範的,由 SDK 和鏈上 CPI 使用。始終計算 PDA;不要硬編碼衍生位址。
token0Mint / token1Mint 在雜湊前按公開金鑰位元組順序排序(token0 < token1)。弄錯這一點會為不存在的池產生有效的 PDA。 等效的 CLMM 種子遵循相同的風格;見 products/clmm/accounts。

Devnet

Devnet REST API 基礎:https://api-v3-devnet.raydium.io/(與 mainnet 相同的路由形狀)。

升級授權

mainnet-beta 上的每個 Raydium 程式都在 BPF 可升級載入器下部署,具有相同的升級授權 — 程式升級 Squads 多簽的保管庫: 在 2026-09-09 為 AMM v4、CPMM、CLMM、Stable AMM、Farm v6、LaunchLab、AMM 路由和 Lock 驗證 — 所有八個都報告該授權,沒有一個是不可變的。在高風險部署前使用 solana program show <PROGRAM_ID> -u mainnet-beta 重新檢查;見 security/admin-and-multisig 瞭解多簽的閾值和簽署實踐。

程式級別設定帳戶

所有值在 2026-09-09 從 mainnet-beta 讀取。這些帳戶上的費用率是管理員可變的 — 即時讀取它們而不是快取。

如何在鏈上驗證位址

  1. Solana Explorer。 將位址貼到 explorer.solana.com 並確認它標記為 Program 且具有當前升級授權。Mainnet-beta 應顯示由 Raydium 升級授權簽署的部署。
  2. CLI。 使用 solana program show <PROGRAM_ID> -u mainnet-beta 檢查部署槽、BPF 載入器、升級授權和資料長度。在你的執行手冊中記錄這些。
  3. IDL 附件。 anchor idl fetch <PROGRAM_ID> --provider.cluster mainnet 適用於 CLMM、LaunchLab 和 Lock,它們仍然保留由程式本身擁有的舊版 anchor:idl 帳戶。它不適用於 CPMM:CPMM 的鏈上 IDL 在 2026-09 升級中移至程式元資料程式(ProgM6JCCvbYkfKqJYHePx4xxSUSqJp7rh8Lyv7nk7S),所以改為從那裡取得。AMM v4、Stable AMM 和 Farm 沒有鏈上 IDL。IDL 在 github.com/raydium-io/raydium-idl 鏡像 — 在信任前將鏈上 IDL 與儲存庫進行差異比較。
  4. 設定/管理員授權。 對於 CPMM/CLMM 設定帳戶,讀取 owner/protocol_owner 欄位並確認它與 security/admin-and-multisig 中發佈的當前 Raydium 多簽相符。
如果上面的四項檢查中的任何一項與本頁不符,將本頁視為錯誤,在針對位址編寫新程式碼前開啟問題。

更新本頁

  • 程式 ID 的變更是安全關鍵的。不要在沒有 (a) 連結到 Raydium 公告、(b) 在 reference/changelog 中新增條目和 (c) 對文件執行連結檢查以確認沒有頁面仍參考舊值的情況下發佈程式 ID 變更。
  • 棄用保留在表中帶有狀態注釋,而不是被刪除 — 現有池仍透過舊程式解析。
來源: