本页内容由 AI 自动翻译,所有内容以英文版本为准。查看英文版 →
introduction/history-and-milestones。
版本发布
CLMM:Anchor 1.0、超额 lamports 回收和固定费用所有者
CLMM 升级到 Agave
3.1.10 上的 Anchor 1.0.2,这与 CPMM 和 LaunchLab 在 2026-09-09 进行的升级相同。两个公开 CPI crate 现在都固定为 =1.0.2,因此单个程序可以 CPI 到 CPMM 和 CLMM。新的管理员指令 CollectExcessLamports 回收 SIMD-0437 释放的租金。它每次调用扫描一个池:PoolState PDA 为其自己的金库和奖励金库签名,wSOL 金库通过 SyncNative / UnwrapLamports 往返,任何 remaining_accounts 中 CLMM 拥有的账户都被扣减到其租金最低值。CreateAmmConfig 现在写入硬编码的 protocol_fee_owner 和 fund_fee_owner 密钥,而不是签名者。在主网上,这些是已存储在所有 21 个配置上的密钥,现有配置不会被重写。已追加 6052。没有用户面向的指令或账户布局发生变化。阅读完整条目 →CPMM:协议从创建者费用中获得份额
CPMM 现在可以保留创建者费用的一部分。分割在费用被收集时应用,而不是在收取时:交换仍然将整个创建者费用累积到
creator_fees_token*,然后 CollectCreatorFee / CollectCreatorFeePermissionless 将一部分移入池的现有 protocol_fees_token* 计数器并向创建者支付其余部分——向下舍入,因此灰尘保留给创建者。费率来自新的 AmmConfig.creator_fee_share_rate(从填充中分割出来;账户仍为 236 字节,但旧的 padding[0] 现在是活跃字段)或来自覆盖它的每个创建者 CreatorFeeShare PDA,由新的管理员指令 CreateCreatorFeeShare / CloseCreatorFeeShare 管理。对创建者费用客户端的破坏性变化:两个收集指令都在其列表末尾追加了新账户——现有账户保持其位置,但新账户是强制性的,因此升级前的交易会因缺少账户而被拒绝。UpdateAmmConfig 获得 param = 8。PoolState、交换数学和 k 检查保持不变,没有添加错误代码。随之而来的是:CollectExcessLamports 中的两遍排序修复。阅读完整条目 →LaunchLab:Anchor 1.0、超额 lamports 回收和过渡门的结束
LaunchLab 升级到 Agave
3.1.10 上的 Anchor 1.0.2 并停用其过渡脚手架。已弃用的 Initialize 现在无条件地以 NotApproved 失败。MigrateToCpswap 对迁移钱包具有破坏性:所有三个参数和九个 OpenBook 账户都已删除,遵循 AMM v4 自己的 OpenBook 移除,程序不再通过 CPI 初始化市场。get_upgrade_timestamp 时钟门被删除,因此三个交易 remaining_accounts 是无条件必需的(system_program 槽现在被验证),MigrateToCpswap 始终采用许可的 CPMM 路径,InitializeWithToken2022 删除了其 amm_fee_on 限制。新的管理员指令 CollectExcessLamports 回收 SIMD-0437 释放的租金——注意源账户必须按三个金库权限 PDA 中的哪一个拥有它们来分组。三个 MigrateToCpswap 地址约束移入指令体,将 2012 更改为 2502。已追加 6031。没有账户布局、交易指令或费用行为发生变化。阅读完整条目 →CPMM:Anchor 1.0、超额 lamports 回收和固定费用所有者
CPMM 升级到 Agave
3.1.10 上的 Anchor 1.0.2,并添加了管理员指令 CollectExcessLamports,该指令从金库、LP 铸币和 PDA 回收 SIMD-0437 释放的租金——包括包装的 SOL 金库,通过 SyncNative / UnwrapLamports 往返,保持包装余额不变。三个行为变化随之而来:CreateAmmConfig 现在写入硬编码的 protocol_fee_owner 和 fund_fee_owner 密钥,而不是签名者(现有配置不会被迁移——读取字段),硬编码的四地址 Token-2022 MINT_WHITELIST 被移除,因此 SupportMintAssociated 注册表 PDA 是唯一剩余的绕过,ClosePermissionPda 现在接受专用的授予权限。已追加 6015。没有用户面向的指令或账户布局发生变化。阅读完整条目 →AMM v4:Solana 3.0 依赖和超额 lamports 回收
AMM v4 针对
solana-program 3.0.0、spl-token 9.0.0、spl-associated-token-account 8.0.0 和新的 solana-system-interface crate 重新构建,并添加了仅限管理员的 WithdrawExcessLamports(标签 18),该指令回收 SIMD-0437 释放的租金。每个交易者和 LP 面向的指令都保持其账户、参数和数学,发布中没有任何破坏性内容:CreateConfigAccount 停止读取其尾部租金 sysvar,但仍接受旧的五账户列表。AmmError 获得代码 60(它从 0 而不是 6000 开始编号)。阅读完整条目 →LaunchLab:平台曲线规则替代曲线参数白名单
启动参数限制从
PlatformConfig 移出到每个配置的 PlatformCurveRule 账户。规则最多可以容纳 10 个检查组,每个组最多 25 个 (field, op, value) 约束,涵盖 19 个启动参数,支持 Eq / Gte / Lte / Neq——因此平台最终可以表达值范围、替代层级、毕业估值上限、迁移下限、代币类型门控或在日期上切换的组,这些都是仅限相等的白名单无法做到的。PlatformConfig 保持其 944 字节大小:restrict_curve_param、curve_rule_manager 和已删除向量的长度前缀都来自填充。解码器必须删除尾部的 Vec<PlatformCurveParam>,启动构建者必须在标志打开时将规则 PDA 追加到 remaining_accounts。删除了两个指令,添加了四个,UpdatePlatformConfig 添加了两个变体,已追加 6024–6030。需要 IDL 刷新。SDK 提供两个纯离链检查,因此创建者永远不必从恢复的交易中学习规则,条目记录了在主网上启用标志之前的 devnet 排练。阅读完整条目 →LaunchLab:平台在铸币创建时持有提取扣留权限
InitializeWithToken2022 现在将 PlatformConfig.transfer_fee_extension_auth 写入新基础铸币的 withdraw_withheld_authority,而不是启动 authority PDA,因此平台可以在粘合曲线阶段扫除扣留的转账费用,而不是等待毕业——程序本身没有提取扣留指令。MigrateToCpswap 仅当 PDA 仍然持有该权限时才重新分配该权限,这使毕业对两代铸币都有效。transfer_fee_config_authority 仍然仅在毕业时移动,因此在启动中期轮换 transfer_fee_extension_auth 会无声地将两个权限留在不同的密钥上。没有账户布局、指令、参数或错误代码发生变化。阅读完整条目 →LaunchLab:平台费率上限提高到 500 bps
平台
fee_rate 上限在验证它的两个路径上都移动到 50000(500 bps)。CreatePlatformConfig 自程序首次发布以来一直被限制在 10000(100 bps);UpdatePlatformConfig 自 2026-01-27 以来被限制在 25000(250 bps)。两个检查现在一致,因此以任何允许的费率创建的平台也可以以该费率更新——包括通过 AllInfo 批量变体,它在重写每个其他字段时重新验证 fee_rate。两个路径仍然引发不同的错误(创建时为 InvalidInput,更新时为 InvalidPlatformInfo)。没有账户布局、指令或错误代码发生变化,没有现有平台或启动重新定价。GlobalConfig.max_share_fee_rate 保持在 100 bps,仅限制每个交易的推荐 share_fee_rate。阅读完整条目 →LaunchLab:Token-2022 报价铸币
启动现在可以用 Token-2022 铸币报价。
CreateConfig、InitializeV2、InitializeWithToken2022、四个交换指令和每个费用声明都在其报价程序槽中接受任一代币程序;已弃用的 Initialize 保持仅限遗留。交换滑点界限现在与支付者实际支付或接收的内容进行比较,扣除报价铸币的转账费用。PoolState.token_program_flag bit1 变得有意义,因此针对整个字节测试 0 的解码器会将遗留基础铸币误读为 Token-2022。MigrateToCpswap 将其两个代币程序账户重命名为 token_program / token_program_2022,6023 被重用于 CalculateOverflow。阅读完整条目 →LaunchLab:仅 CPMM 启动和平台配置控制
新启动初始化现在需要 CPMM,而遗留的 AMM v4 绑定状态保持可迁移。在此版本之前,
creator_scale 生成创建者拥有的费用密钥;升级后执行的 CPMM 迁移改为将 platform_scale + creator_scale 合并为一个平台拥有的费用密钥份额。平台也可以用自己的 PlatformAllowConfig PDA 限制启动,迁移构建者必须追加两个 CPMM 支持铸币 PDA。阅读完整条目 →CLMM:受限发行人头寸 NFT 冻结
新的 CLMM 头寸 NFT 铸币使用其池作为冻结权限,但其代币账户默认保持解冻。冻结仅在
OpenPositionV2 或 OpenPositionWithToken22Nft 时发生,当任一基础金库铸币的冻结权限与受限发行人列表匹配时。匹配的头寸无法转移或更改所有者,但仍可以管理流动性。其 ClosePosition 调用必须追加池,以便 CLMM 可以原子地解冻、燃烧和关闭。现有头寸保持不变。阅读完整条目 →CPMM:无许可创建者费用收集
附加的
CollectCreatorFeePermissionless 指令让任何支付者扫除所有累积的创建者费用,同时将受益人和两个代币目的地限制为 PoolState.pool_creator 和创建者的规范 ATA。原始创建者签名路径保持不变。CreatePermissionPda 也接受专用的授予权限,而 ClosePermissionPda 保持仅限管理员。阅读完整条目 →CLMM:许可多池和限价单冻结账户保护
两个附加的、向后兼容的 CLMM 程序更新。
CreatePermissionedPool 将客户端提供的非零 seed_index 折叠到池 PDA 种子中,让白名单操作者(持有 Permission PDA 的操作者)为每个 (config, mint0, mint1) 创建多个池——因此池 ID 不再是对的规范标识符。新的管理员指令 CreatePermissionPda / ClosePermissionPda 管理这些授予,PoolState 获得 seed_index 字段(从填充中分割出来,大小不变)。另外,OpenLimitOrder 现在接受输出端账户并拒绝其输入或输出代币账户被冻结的订单(NotApproved)。阅读完整条目 →AMM v4:移除 OpenBook / Serum 依赖
AMM v4 移除了其长期休眠的 OpenBook/Serum 依赖、所有订单簿 CPI 和已死的做市指令。
SwapBaseIn / SwapBaseOut、Deposit 和 Withdraw 保持其布局(已删除的市场账户现在被忽略,不被验证);具有破坏性的 WithdrawPnl(17 → 10,无兼容性)和 SetParams(减少账户 + 重新编号 param);Initialize、PreInitialize、MonitorStep、MigrateToOpenBook、WithdrawSrm、SimulateInfo、AdminCancelOrders 不再可调用。链上账户布局和错误代码保持稳定;将交换迁移到 V2 入口点。阅读完整条目 →稳定 AMM:移除已死的 OpenBook(市场)代码
稳定 AMM 移除了其长期休眠的 OpenBook 做市账户和代码。更小的
SwapBaseIn / SwapBaseOut(18 → 9)、Deposit(14 → 12)和 Withdraw(21/22 → 12)布局(旧布局仍兼容);具有破坏性的 WithdrawPnl 变化(16 → 10,无兼容性);推荐费用已停用;以及简化的仅金库池资产公式。大多数其他稳定指令不再可调用。阅读完整条目 →CLMM:限价单、单边费用、动态费用
三个可选的、向后兼容的 CLMM 功能:一流限价单(带
limit_order_admin 结算保管人)、单边费用收集(CollectFeeOn)和波动率跟踪动态费用。添加 CreateCustomizablePool、PoolState 重塑(索引器破坏性变化)、新的 TickState 字段、十一个新错误代码(带数字移位)以及匹配的 SDK / API 添加。阅读完整条目 →初始发布
Raydium 文档集的首次公开发布,针对实时 mainnet-beta 部署和
@raydium-io/raydium-sdk-v2@0.2.42-alpha 进行了验证。阅读完整条目 →文档约定
- 版本控制:本文档使用基于日历的版本控制(YYYY-MM-DD)。每个更新都在上面的时间线顶部添加一个新条目页面和一个新行。
- 每个版本一个页面:每个版本摘要都位于
reference/changelog/下的自己的页面上,因此此索引保持简短,每个条目都可以独立链接。 - 验证日期:每个条目记录内容上次与链上 / API 状态和程序源代码交叉检查的时间。如果未说明,假设为条目的主要日期。
- 破坏性变化:在受影响的页面上用方框警告标注,并在条目中标记。
- 覆盖范围:此更新日志涵盖文档集本身。协议本身的历史时间线位于
introduction/history-and-milestones,是”Raydium 上何时发生 X”的真实来源。
更正
如果你在本文档中发现错误,请在文档存储库上打开问题或拉取请求。更正被记录为更新日志条目。指针
introduction/history-and-milestones— 协议本身的时间线。security/audits— 审计历史。ray/protocol-fees— 协议费用分割。reference/program-addresses— 程序 ID 真实来源。

