跳转到主要内容
Pump.fun 联合曲线的程序 ID 是 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P。构建或解码其指令时可以参考本文,内容包括账户、鉴别器和买入/卖出布局。毕业后的交易请参考 PumpSwap 程序文档。
不想手动构建指令?Raptor Swap API 会自动在 Pump.fun 联合曲线和 PumpSwap 之间路由买单和卖单。

官方程序 ID

请准确复制程序 ID。Base58 地址区分大小写,6EF8 后面的 r 是小写。

常见 PDA

Solana Tracker 市场筛选值:pumpfun(联合曲线)、pumpfun-amm(已毕业 / PumpSwap)。

Anchor IDL

下载官方 Anchor IDL(镜像自 pump-fun/pump-public-docs):
用 Anchor 的 Program 或 BorshInstructionCoder 加载 IDL,解析原始指令时也可以直接使用下面的鉴别器。

指令鉴别器

Anchor 鉴别器是 sha256("global:<instruction_name>") 的前 8 个字节。解析交易或手动构建指令时需要匹配这些值。 AMM 上的 buy / sell 复用相同的 sighash,分类交易时务必检查程序 ID(6EF8rrecth… 和 pAMMBay…)。 主网上很多曲线兑换使用 buy_exact_sol_in(0x38fc74089edfcd5f),而不是经典的 buy。解析器应同时处理这两种指令。

在 Rust 中判断买入或卖出

buy 指令

参数 账户 从 global 账户读取 fee_recipient(以及 fee_recipients 数组)。fee_program 传 pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ。

sell 指令

参数 账户

create 指令

参数: name: string、symbol: string、uri: string、creator: pubkey
鉴别器: [24, 30, 200, 40, 5, 28, 7, 119]
较新的发行通常使用 create_v2(Token-2022 / Mayhem / cashback 字段)。集成创建流程时,优先对照实际交易或 IDL。

使用 @solana/web3.js 买入和卖出

先编码 Anchor 鉴别器,再按小端序编码 u64 参数。OptionBool 占一个字节(0 或 1)。
主网上的实际指令常在 IDL 账户列表后追加剩余账户(buy / buy_exact_sol_in / sell 通常多 2 个,用于 cashback 或 bonding-curve-v2 流程)。Token-2022 mint 使用 TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb,而不是旧版 Token 程序。上线前务必对照近期成功的交易和最新的 /idl/pump.json。Token-2022 或多计价代币流程优先使用 IDL 中的 buy_v2 / sell_v2。

更简单的方式:Raptor 兑换 API

参见 Swap API 和 Raptor 概览。

用 Solana Tracker 订阅和索引数据

根据需要的数据层级选择接口: 文档:

PumpSwap 程序

PumpSwap 程序 ID、IDL 和买入/卖出鉴别器。

发行与毕业

通过 Solana Tracker 发现代币、追踪曲线和毕业,并完成兑换。

Yellowstone 买卖检测

通过 gRPC 实时解析指令。

Raptor Swap

无需构建指令即可执行 Pump.fun 和 PumpSwap 兑换。