Get started
Introduction
What pump is, how the bonding curve and PumpSwap AMM fit together, and where to start integrating.
Pump lets anyone create coins, giving everyone equal access to buy and sell from the start. Every coin is instantly tradeable on a bonding curve, with no need to seed liquidity. Once the curve fills up, its liquidity migrates to PumpSwap, Pump's own constant-product AMM, and the LP tokens minted by that migration are burnt.
Everything below is on-chain and permissionless: the same instructions that power pump.fun and Terminal are available to your own program, bot, or indexer.
Coin lifecycle
- Create —
create_v2mints a Token-2022 coin withdecimals = 6and initializes its bonding curve. The creator picks the quote mint (SOL by default, USDC supported). - Trade on the curve —
buy_v2andsell_v2price against the curve's virtual and real reserves, using a Uniswap V2 style constant product formula. - Graduate — when
real_token_reserveshits0, the curve is markedcomplete. - Migrate — anyone can call
migrate, which moves the liquidity into a canonical PumpSwap pool (index0) and burns the LP tokens. - Trade on the AMM — the coin keeps trading on PumpSwap with LP, protocol and coin-creator fees.
The three programs
| Program | Address | What it does |
|---|---|---|
| Pump | 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P | Coin creation, bonding curve trading, migration, cashback |
| PumpSwap (Pump AMM) | pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA | Constant-product pools, liquidity, post-graduation swaps |
| Pump Fees | pfeecUb2rBoZQddahu8RPgtLKvmjSLKCJ3oWgDF347d | Dynamic fee tiers and creator fee sharing |
All three are deployed at the same addresses on Mainnet and Devnet.
Key accounts
| Account | Address / seeds |
|---|---|
Global (Pump) | 4wTV1YmiEkRvAtNtsSGPtUrqRYQMe5SKy2uB4Jjaxnjf, PDA of ["global"] |
GlobalConfig (PumpSwap) | ADyA8hdefvWN2dbGGWFotbzWxrAvLW83WG6QCVXvJKqw, PDA of ["global_config"] |
BondingCurve | PDA of ["bonding-curve", mint] |
Pool | PDA of ["pool", index, creator, base_mint, quote_mint] |
UserVolumeAccumulator | PDA of ["user_volume_accumulator", user], per program |
What to read next
- Building an integration? Start with the Quickstart, then the Buy V2 and Sell V2 account tables.
- Indexing or quoting? Read Pump program and PumpSwap, especially effective quote reserves.
- Pricing trades correctly? The Fee program describes the market-cap based fee tiers that apply to curves and canonical pools.
- Writing an on-chain program? See CPI from your program.
Use the unified v2 interface
buy_v2, sell_v2 and buy_exact_quote_in_v2 take no optional accounts — every account is
mandatory and passed in the same order for every kind of coin. New integrations should use them
exclusively; the legacy buy / sell instructions still work but cannot trade coins paired with
a non-SOL quote mint such as USDC.
For SOL-paired coins, pass wrapped SOL (So11111111111111111111111111111111111111112) as the
quote_mint. Transfers still settle in native SOL, and there is no extra cost compared to the
legacy instructions.