woopwoop

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.

ProgramE9bGbtxU6PrAVAtw91mXEyyzeGVBeN1Zxzpw3rpag39z (woop_core, mainnet)
Interface (Anchor IDL)/integrators/woop_core.json
TypeScript SDKnpm i @usewoop/sdk: SDK guide
One market per coinits Curve account, PDA ["curve", mint]
CoinsToken-2022, 6 decimals, 1B supply, metadata on the mint
PairsSOL plus other pair tokens (USDC, USD1, cbBTC, gold…): the curve's quote_mint

A coin's life

PhaseHow to tellTrading
Fair opening (first 60 s)now < opening_endsBuys go in as one Fair Block: everyone gets the same price, capped per wallet. No instant trades
On the curvestatus = 1Instant buys and sells, and Fair Block orders. Price rises as coins sell (760M of the 1B are sold on the curve)
Fair Block collectingblock_open = trueInstant trades pause for the 2–3 s until the block settles; orders can join
Sold out, graduatingstatus = 2Nothing, for a moment, until the graduation transaction
Graduatedstatus = 3The same Curve account is now a WAMM pool: swaps both ways
Refundstatus = 4, or now ≥ refund_at before graduatingNo 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_instant and curve_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.

TradeFeeHolders · creator · woop
Curve buy, Fair Block order1.5%0.6 · 0.5 · 0.4
Instant sell on the curve10% (at most a fifth of a position per sell, one a minute)4 · 3 · 3
Exit Queue fill1% each side0.55 · 0.25 · 0.2
WAMM pool swap1%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.