Reverse
engineered

What pump.fun's programs do, read from lalalune/pumpfun-source (a community reconstruction of pump.fun's public programs), and what this pad does on Raydium LaunchLab instead. We are not pump.fun and run none of its code.

pump.funWhat it does thereOn this pad, on Raydium
set_paramsset_params.rsAn admin-only call (has_one authority) that writes one curve into Global for every coin pump.fun will ever create.Each creator writes their own curve into their own pool when they launch: LaunchLab's initialize_v2 takes supply, curve share and raise per coin.
initial_virtual_token_reserves
initial_virtual_sol_reserves
lib.rs
Fields of Global. Every new bonding curve starts from these two.The pool's virtualA and virtualB, computed from your three numbers with LaunchLab's constant-product init. The curve lab shows them before you sign.
initial_real_token_reserveslib.rsHow many tokens the curve sells before it completes.Your curve share: totalSellA, over 50% and at most 85% of supply.
token_total_supplylib.rsSupply minted for every coin.Your supply, 10,000,000 tokens and up, 6 decimals.
final_real_sol_reserveslib.rsComputed inside set_params and emitted in SetParamsEvent: the SOL a curve holds when its last real token is bought.Your raise, totalFundRaisingB: the SOL that completes the curve, 24 SOL and up.
require_gt! checkslib.rsset_params refuses real reserves at or above supply, and virtual token reserves at or below real ones.LaunchLab's config refuses supply under its minimum, a curve share under 20%, a pool share under 15% and a raise under its minimum. Read live below.
pool_migration_feelib.rsTaken from the curve at migration.LaunchLab's SOL config sets migrateFee, read live below.
migratemigrate.rsAnyone can call it once a curve is complete: it takes the migration fee, creates a PumpSwap pool with the curve's tokens and SOL, and burns the LP.When the curve has raised its target, LaunchLab's migrate_to_cpswap, signed by Raydium's migration wallet RAYp…CgW, moves the unsold supply and the SOL into a Raydium CPMM pool. LP split from Raydium's platform account, read live below.
migrate_v2migrate_v2.rsThe same move for curves priced in another quote mint.This pad uses LaunchLab's SOL config only. Graduation to the older AMM v4 is refused by the program on this platform (MigrateTypeNotMatch), so CPMM it is.
fee_basis_points
creator_fee_basis_points
lib.rs
pump.fun's trade fee and creator fee, also in Global.LaunchLab's protocol fee, Raydium's platform fee and the creator fee, read live below and on every coin page.

pump.fun's Global, live

Reading…

LaunchLab's SOL config + Raydium's platform, live

Reading…

Tested against mainnet before we built a pixel

Each create below was run against Solana mainnet's current state with a real funded wallet as payer, without sending. The pool the program would write was read back and matched the curve lab's numbers to the last unit. Outside the limits, the LaunchLab program itself refused.

1B supply, 79.31% on the curve, 85 SOLAcceptedvirtual reserves 1,073,025,605.596382 tokens / 30.000852951 SOL
420.69M, 69%, 42 SOLAcceptedvirtual reserves 527,080,286.849701 / 34.263157895 SOL
10B, 51%, 24 SOL, with a 0.05 SOL dev buyAcceptedcreate and buy in one transaction
69M, 85%, 300 SOLAcceptedvirtual reserves 71,217,857.142857 / 64.285714285 SOL
1T supply, 80%, 100 SOLAcceptedlargest supply this pad offers
Raise of 10 SOLRefusedrequire_gte: 10 SOL < 24 SOL
Supply of 5MRefusedrequire_gte: 5M < 10M
90% on the curveRefusedrequire_gte: pool share 10% < 15%
Graduate to AMM v4RefusedMigrateTypeNotMatch

What runs where

Raydium's LaunchLab program enforces

The limits on supply, curve share and raise; the constant-product curve itself; the fees on every curve trade; the moment a curve is complete.

The transaction you sign does

Creates the mint, its metadata and its pool with your curve, plus your dev buy if you set one, and a memo that lists the coin on this pad's board.

Raydium runs

The graduation: its migration moves a completed curve into a CPMM pool. This pad holds no keys, no funds and no server.