Documentation Index
Fetch the complete documentation index at: https://docs.raydium.io/llms.txt
Use this file to discover all available pages before exploring further.
本页内容由 AI 自动翻译,所有内容以英文版本为准。查看英文版 →
版本声明。 所有示例针对
@raydium-io/raydium-sdk-v2@0.2.42-alpha,运行在 Solana mainnet-beta,已验证至 2026-04。程序 ID:675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8(参见 reference/program-addresses)。本文不涵盖新池创建。 Raydium UI 已停止支持 AMM v4 池创建——新交易对默认使用 CPMM。AMM v4 程序本身仍接受链上
Initialize2 调用,但已不是推荐方案。下文示例覆盖每个集成方都需要的活池操作:交换、存入、提取。初始化设置
按 ID 获取池信息
poolKeys 是指令构造函数使用的结构体,包含所有 AMM v4 和 OpenBook 账户,按程序期望的顺序排列。
交换(固定输入)
交换(固定输出)
提供流动性
fixedSide: "a" 告诉 SDK 你提供的 amountInA 是精确值,amountInB 最多为 maxAnotherAmount。池的链上流动性在计算比例前进行结算,确保存入比例匹配最新的储备量。
移除流动性
计算单位 / 优先费调整
AMM v4 交换因需验证完整 OpenBook 状态而消耗大量计算。典型交换使用 180k–250k CU,具体取决于需结算的未平仓订单数。始终传递计算单位限制:computeBudgetConfig,SDK 可能仍会使用默认值;检查 innerTransactions 确认。参见 integration-guides/priority-fee-tuning。
直接 Rust CPI
如果你必须从自己的 Anchor 程序 CPI 到 AMM v4,需要逐字复现SwapBaseIn 的账户列表。最小示意:
Instruction。
常见陷阱
- 缺少 OpenBook 账户。 每次交换、存入、提取都需要全部 8 个 OpenBook 账户;SDK 会自动处理,但手工构造的指令通常不会。
- 读取原始保险库余额。 不反映链上托管的金额或累积的损益。使用 SDK 的报价或
api-v3.raydium.io/pools/info/ids。 - OpenBook 事件队列满。 当市场的事件队列需要处理时,池可能以
SerumOrderError回退交换。处理事件队列是无需许可的(在市场 OpenBook 账户上调用MonitorStep)。 - Token-2022 代币。 不支持。无法在 Token-2022 代币上创建 AMM v4 池;任何 Token-2022 交易对应使用 CPMM 或 CLMM。
后续阅读
products/amm-v4/instructions— 这些示例背后的指令级接口。user-flows/migrate-amm-v4-to-cpmm— 如果你是考虑迁移的 LP。integration-guides/priority-fee-tuning— 大量 AMM v4 交换的优先费调整。


