pumpPumpDocs

Get started

SDKs & IDLs

TypeScript and Rust clients, on-chain program IDLs, and which SDK surface to use for each integration.


Pump ships first-party clients for TypeScript and Rust, plus the raw Anchor IDLs for every program. Use the SDK where you can — it already implements the dynamic fee math, PDA derivations and account ordering that the programs expect.

TypeScript

npm install @pump-fun/pump-sdk       # bonding curve: create, buy, sell, cashback
npm install @pump-fun/pump-swap-sdk  # PumpSwap AMM: pools, liquidity, swaps

Both packages contain the current fee-tier implementation (computeFeesBps, calculateFeeTier), so upgrading the package is usually all it takes to stay correct across fee changes.

Rust

[dependencies]
pump-rust-client = "*"

The crate lives at crates.io/crates/pump-rust-client. It exposes PumpSdk instruction builders (create_v2_and_buy_instruction, buy_v2_instructions, sell_v2_instructions, claim_cashback_v2_instruction, collect_creator_fee_v2_instructions), PDA helpers under pda::, and account decoders under accounts::.

When you deserialize Pump accounts inside your own Anchor program, import the state types from pump_rust_client::state rather than from the generated IDL module — they zero-pad short buffers so legacy on-chain accounts still decode. See CPI from your program.

Which SDK surface to use

The PumpSwap SDK is layered, and picking the right layer saves a lot of glue code:

LayerUse it for
PumpAmmSdkUI integrations: input autocomplete helpers plus instruction builders
PumpAmmInternalSdkProgrammatic integrations that need full control over each instruction
PumpAmmAdminSdkAdmin-protected instructions

The PumpSwap SDK page walks through pool creation, deposits, swaps and withdrawals, and PumpSwap maps every SDK method back to its Anchor instruction.

IDLs

Anchor IDLs and their generated TypeScript types, mirrored from the public docs repository:

ProgramAddressIDLTypes
Pump6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6Ppump.jsonpump.ts
PumpSwappAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEApump_amm.jsonpump_amm.ts
Pump FeespfeecUb2rBoZQddahu8RPgtLKvmjSLKCJ3oWgDF347dpump_fees.jsonpump_fees.ts

Load an IDL with Anchor when you would rather build instructions yourself:

import { Program, AnchorProvider } from "@coral-xyz/anchor";
import idl from "./idl/pump.json";

const program = new Program(idl, new AnchorProvider(connection, wallet, {}));

Integration checklist

  • Use buy_v2 / sell_v2 / buy_exact_quote_in_v2, never the legacy variants.
  • Pass wrapped SOL as quote_mint for SOL-paired coins.
  • Derive fees from the market-cap tiers, don't hardcode basis points.
  • Quote PumpSwap against effective quote reserves.
  • Randomize the fee recipient per transaction across the published address lists.
  • Set a static compute unit limit instead of simulating each trade.