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 锁定和 Farm 程序不公开——改为根据实时 API、链上字节码和 raydium-io/raydium-idl 中发布的 IDL 验证它们。

共享管理员权限

所有基于 Anchor 的程序(CLMM、CPMM、LaunchLab、Lock)共享一个硬编码的管理员 Pubkey,用于对管理员路径(如 CreateAmmConfigUpdatePoolStatus)的指令级访问控制: 账户级操作权限(例如 CPMM/CLMM AmmConfig 上的 protocol_ownerfund_owner,或 LaunchLab GlobalConfig 上的迁移钱包)存储在链上,可能与程序管理员不同。在发送高风险交易前,直接从相关配置账户读取它们。

CPMM 权限 PDA 创建者权限

CreatePermissionPda 接受上面的共享程序管理员或专用所有者。自 2026-09 CPMM 升级以来,ClosePermissionPda 接受相同的两个签名者;在此之前仅限管理员。

CPMM 支持代币注册表权限

CreateSupportMintAssociatedCloseSupportMintAssociated 接受共享程序管理员或下面的专用所有者。注册代币允许它通过 CPMM 的 Token-2022 扩展允许列表——见 reference/token-2022-support

CPMM 费用所有者钱包

自 2026-09 CPMM 升级以来,CreateAmmConfig 将这些固定密钥写入新配置的 protocol_ownerfund_owner,而不是复制管理员签名者的密钥。它们是 CollectProtocolFeeCollectFundFee 为从该升级开始创建的任何配置接受的签名者。
这些是程序写入新配置的值,不是对现有配置的描述。升级前创建的 AmmConfig 账户保留存储在其上的任何内容。在构建收集交易前,始终从账户读取 protocol_owner / fund_owner

超额 lamport 收集钱包

2026-09-09 升级的三个程序各获得了一个管理员指令,该指令返回程序控制账户上超过租金豁免最低值的 lamport,遵循 SIMD-0437 租金减少。每个程序硬编码自己的目标钱包,每个都是专用密钥——不是共享程序管理员。 CPMM 和 LaunchLab 另外接受共享程序管理员作为签名者。AMM v4 接受上面的钱包——它没有管理员回退。AMM v4 还在其 testnet 功能下编译一个单独的测试网密钥(75KWb5XcqPTgacQyNw9P5QU2HL3xpezEVcgsFCiJgTT)。 这些指令仅移动 lamport;它们永远不会触及代币余额、关闭账户或改变池状态。见 products/amm-v4/instructionsproducts/cpmm/instructionsproducts/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 的池创建费接收者是固定账户,不是派生或通过 API 查询的:create_pool_fee_reveiver::IDraydium-cp-swaplib.rs 中,目前是 DNXgeM9EiiaAbaWvwjHj9fQQLAX5ZsfHyvmYUNRAdNC8。CPMM 的 initialize 指令通过精确地址验证它,所以它必须已经存在于你测试的任何集群上。 默认 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 相同的路由形状)。

如何在链上验证地址

  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 查询链上 IDL。IDL 的 address 字段应该匹配。相同的 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 更改。
  • 弃用保留在表中带有状态注释,而不是被删除——现有池仍通过旧程序解析。
来源: