Integrate woop
For trading terminals, wallets, bots and data sites: how woop's program works, and everything you need to show and trade woop coins.
woop is a Solana launchpad with its own bonding curve, the woopcurve. Every coin launches on it and, when the curve sells out, graduates in place into its own constant-product pool, the WAMM pool. Both live in one program.
| Program | E9bGbtxU6PrAVAtw91mXEyyzeGVBeN1Zxzpw3rpag39z (woop_core, mainnet) |
| Interface (Anchor IDL) | /integrators/woop_core.json |
| TypeScript SDK | npm i @usewoop/sdk: SDK guide |
| One market per coin | its Curve account, PDA ["curve", mint] |
| Coins | Token-2022, 6 decimals, 1B supply, metadata on the mint |
| Pairs | SOL plus other pair tokens (USDC, USD1, cbBTC, gold…): the curve's quote_mint |
A coin's life
| Phase | How to tell | Trading |
|---|---|---|
| Fair opening (first 60 s) | now < opening_ends | Buys go in as one Fair Block: everyone gets the same price, capped per wallet. No instant trades |
| On the curve | status = 1 | Instant buys and sells, and Fair Block orders. Price rises as coins sell (760M of the 1B are sold on the curve) |
| Fair Block collecting | block_open = true | Instant trades pause for the 2–3 s until the block settles; orders can join |
| Sold out, graduating | status = 2 | Nothing, for a moment, until the graduation transaction |
| Graduated | status = 3 | The same Curve account is now a WAMM pool: swaps both ways |
| Refund | status = 4, or now ≥ refund_at before graduating | No trading: everyone is refunded (coins that don't graduate in 7 days) |
For a screen like New Pairs, Final Stretch and Migrated: a new pair is a CurveLaunched event; the final stretch is sold / 760M near 100%; migration is the CurveGraduated event. The pool's address is the curve's, so there is nothing new to discover.
The one thing that's different
Before graduation, every holder's coin account is frozen. The mint's default account state is frozen, and only the curve can thaw an account, inside its own instructions. That's how woop runs fair launches, refunds and the creator lock.
So, before graduation:
- coins only move through woop_core's instructions:
curve_buy,curve_sell_instantandcurve_order(a Fair Block order); - a buy sends coins to the trader's own Token-2022 associated account, which must exist first;
- the creator's coins are locked; the creator can't sell on the curve.
After graduation accounts are thawed as they trade, and anyone can thaw one with curve_unlock. The coin is then a normal Token-2022 token, and its WAMM pool trades with wamm_swap.
Fees
Fees are taken in the pair token, in basis points of the trade, split between holders, the coin's creator and woop.
| Trade | Fee | Holders · creator · woop |
|---|---|---|
| Curve buy, Fair Block order | 1.5% | 0.6 · 0.5 · 0.4 |
| Instant sell on the curve | 10% (at most a fifth of a position per sell, one a minute) | 4 · 3 · 3 |
| Exit Queue fill | 1% each side | 0.55 · 0.25 · 0.2 |
| WAMM pool swap | 1% | 0.5 · 0.2 · 0.3 |
Wallets holding the $WOOP tier pay half (except instant sells) when their $WOOP token account is passed as woop_tokens. The live numbers are in the CurveConfig account.
Next
- Accounts: layouts, PDAs, decoding.
- Trading: each instruction and its accounts.
- Events and indexing: streaming trades, prices and market caps.
- SDK: all of it in TypeScript, checked against mainnet.
Prefer HTTP? The woop API builds the same transactions for a wallet to sign.
