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 接受上面的共享程序管理员或专用所有者。ClosePermissionPda 仍限制为共享程序管理员。

LaunchLab 委托配置创建者

CreateConfig 接受共享程序管理员或下面的委托权限。委托角色可以创建新的 GlobalConfig;它不能为现有账户调用仅限管理员的 UpdateConfig 路径。

CLMM 受限发行者冻结权限

当 CLMM 池中的任一保险库铸币具有以下冻结权限之一时,通过 V2 路径打开的新头寸会冻结其头寸 NFT 代币账户。初始条目是 CLMM 的 Superstate 资产检测使用的权限。这些是仅用作匹配键的底层资产发行者权限。CLMM 池 PDA(而非发行者密钥)成为头寸 NFT 铸币的冻结权限。 该列表在 CLMM 程序中硬编码。添加或删除权限需要程序升级。

共享配置 / PDA 约定

多个 Raydium 程序公开配置账户,其公钥是稳定的,并在公开 API 上列出。优先使用 API 查询而不是硬编码:
默认 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 更改。
  • 弃用保留在表中带有状态注释,而不是被删除——现有池仍通过旧程序解析。
来源: