本页内容由 AI 自动翻译,所有内容以英文版本为准。查看英文版 →
版本信息
- SDK:
@raydium-io/raydium-sdk-v2@0.2.42-alpha - 集群:Solana
mainnet-beta - 程序 ID:见
reference/program-addresses - 最后验证:2026-04
package.json 中固定 SDK 版本。联动曲线接口在小版本之间有所变化。设置
此处的示例镜像raydium-sdk-V2-demo/src/launchpad 中的文件。引导程序遵循演示仓库的 config.ts.template:
创建启动
源代码:src/launchpad/createMint.ts(以及 createBonkMintApi.ts 用于 API 驱动的 Bonk 变体)
initialK是二次曲线的缩放因子。调整它以在毕业时针对特定的开盘 CPMM 价格。详见products/launchlab/bonding-curve的推导。- SDK 在单个交易中处理创建基础 mint、元数据 PDA 和两个金库。如果元数据 URI 很长,可能超过 1232 字节;在这种情况下,SDK 会分成两个交易。
- 在
Initialize之后,启动在openTime之前不可交易。将openTime设置在未来一两分钟,以减少抢先交易者抢占第一笔买入的机会。
获取启动状态
getLaunchById 返回解码后的 LaunchState 以及计算的”毕业进度”分数作为 Decimal。
买入 — 精确报价输入
源代码:src/launchpad/buy.ts
computeBuyBase 镜像链上 Newton 求解器(二次曲线)或闭式 CPMM 反函数(curve_type 1)。用它来填充”你将收到”UI 字段。
买入 — 精确基础输出
maximumQuoteIn,则以 ExceededSlippage 拒绝。
卖出
源代码:src/launchpad/sell.ts
base_sold 减少 baseIn 返回 quote_out,等于曲线下在 base_sold − baseIn 和 base_sold 之间的积分面积,减去卖出费用。
在阈值交叉买入时自动毕业
当 SDK 检测到买入后状态将跨越阈值时,它会在buy* 交易内链接 Graduate 指令:
Graduate 是无权限的,任何人(包括 MEV 机器人)都可以在阈值交叉后竞速登陆第一个 Graduate — 通常在几秒内,而不是几分钟。第一个登陆者只需支付 CPMM 池账户的租金;他们没有其他好处。
手动 Graduate
如果 autoGraduate 关闭或阈值交叉交易失败,你可以单独触发毕业:
quote_reserve_real < quote_reserve_target,则以 NotAtThreshold 回滚。重试安全 — 成功后的第二次 Graduate 尝试以 NotActive 回滚。
收取创建者费用
源代码:src/launchpad/claimCreatorFee.ts(单个 mint)和 collectAllCreatorFees.ts(批量)
跟踪启动的整个生命周期
综合起来,监控脚本可能看起来像:通过 gRPC 监视配置和池
源代码:src/grpc/launchpadPoolInfo.ts
通过 Yellowstone gRPC 订阅 LaunchLab 程序,并记录每个 mint 的 token 程序的每个 GlobalConfig 和 PoolState 更新。一个 accounts 订阅上的两个 datasize 过滤器分离两种账户类型,因此单个流涵盖两者。
该演示是分类启动 mint 的最短正确参考,Token-2022 报价 mint 发布 使其成为必要:
- 池 直接从
PoolState.token_program_flag分类,为基础 mint 解码 bit0,为报价 mint 解码 bit1,完全不获取 mint。测试整个字节是否为0— 在报价 mint 仅为旧版时足够 — 当报价 mint 是 Token-2022 时,会误读旧版基础 mint 为 Token-2022。 - 配置 不能以这种方式分类:
GlobalConfig存储其报价 mint 的地址且没有程序标志,因此演示读取 mint 账户的所有者一次并按 mint 缓存。
create 与 update 是从演示自己的缓存推断的,在启动时从 getProgramAccounts 播种;禁用该播种后,将”create”读作”首次在此流上看到”。
gRPC 访问不是公共 RPC 表面的一部分 — 见演示仓库的 src/grpc/README.md。
Rust CPI
从你自己的 Anchor 程序调用 LaunchLab 很少见(大多数启动集成仅在 TS 端)。如果你这样做,程序附带 Anchor crateraydium_launchlab,包含 cpi::accounts::Buy、cpi::accounts::Sell 等 — 模式镜像 CPMM / CLMM CPI 示例。一旦此站点被填充,见 sdk-api/rust-cpi 获取通用模板。
陷阱
- 费用分割算术差一。 如果
total_share不完全等于lp_share + creator_share + protocol_share,Initialize以InvalidFeeShares回滚。将totalShare设置为等于总和。 - 使用不允许的报价 mint。
launch_config.allowed_quote_mints是固定列表;传递任何其他 mint 会回滚。首先用raydium.launchpad.getConfig()检查。 - 元数据大小。 长
uri字符串会将 Metaplex CPI 推过预算。保持uri在约 200 个字符以下 — 大多数 CDN 托管的 JSON 元数据轻松适配。 - 毕业竞速。 自动化机器人监视
quote_reserve_real并在阈值交叉后的一两个 slot 内抢先Graduate。这是良性的 — 它只花费他们租金 — 但这意味着你的 UI 应该将status转换视为快速事件。
接下来去哪里
products/launchlab/bonding-curve— 曲线数学。products/cpmm/code-demos— 如何处理生成的池。user-flows/launch-token-launchlab— 端到端启动代币指南,包括链下步骤。
- Raydium SDK v2
- Raydium LaunchLab 程序源代码

