Skip to main content
Use this reference when building or decoding Pump.fun bonding curve instructions. It covers the program ID, accounts, discriminators, and buy/sell layout. For post-graduation trades, use the PumpSwap program reference.
Prefer not to hand-build instructions? Raptor Swap API routes buys and sells across Pump.fun bonding curves and PumpSwap automatically.

Official program IDs

Copy the program ID exactly. Base58 addresses are case-sensitive; the r after 6EF8 is lowercase.

Well-known pdas

Solana Tracker market filters: pumpfun (bonding curve), pumpfun-amm (graduated / PumpSwap).

Anchor IDL

Download the official Anchor IDL (mirrored from pump-fun/pump-public-docs):
Load the IDL with Anchor’s Program or BorshInstructionCoder, or use the discriminators below when parsing raw instructions.

Instruction discriminators

Anchor discriminators are the first 8 bytes of sha256("global:<instruction_name>"). Match these when parsing transactions or building instructions manually. buy / sell on the AMM reuse the same sighashes — always check the program ID (6EF8rrecth… vs pAMMBay…) when classifying trades. On mainnet, many curve swaps use buy_exact_sol_in (0x38fc74089edfcd5f) rather than classic buy. Parsers should handle both.

Detect buy vs sell in Rust

buy instruction

Args Accounts Read fee_recipient (and the fee_recipients array) from the global account. Pass fee_program = pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ.

sell instruction

Args Accounts

create instruction

Args: name: string, symbol: string, uri: string, creator: pubkey
Discriminator: [24, 30, 200, 40, 5, 28, 7, 119]
Newer launches often use create_v2 (Token-2022 / Mayhem / cashback fields). Prefer matching live transactions or the IDL when integrating creation flows.

Buy / sell with @solana/web3.js

Encode the Anchor discriminator, then little-endian u64 args. OptionBool is a single byte (0 or 1).
Live mainnet instructions often append remaining accounts after the IDL list (commonly +2 on buy / buy_exact_sol_in / sell for cashback or bonding-curve-v2 flows). Token-2022 mints use TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb instead of the legacy token program. Always cross-check a recent successful transaction and the latest /idl/pump.json before shipping. For Token-2022 / multi-quote flows, prefer buy_v2 / sell_v2 from the IDL.

Easier path: Raptor swap API

See Swap API and Raptor overview.

Stream & index with Solana tracker

Choose the interface that matches the level of data you need: Docs:

PumpSwap program

PumpSwap program ID, IDL, and buy/sell discriminators.

Launches and graduations

Discover, track curves, graduations, and swap via Solana Tracker.

Yellowstone buy/sell

Real-time instruction parsing over gRPC.

Raptor Swap

Execute Pump.fun and PumpSwap swaps without building IXs.