Quoted in a stock
pump.fun’s bonding-curve program accepts a short list of quote mints besides SOL: USDC and a set of tokenized stocks (xStocks) it admits through its QuoteControl account. A coin created with create_v2 and quote_mint = NVDAx trades against NVDAx on its curve, and every fee the curve charges — pump.fun’s and the creator’s — is charged in NVDAx. Waggle lists exactly the stocks pump.fun’s program accepts today: 22, read from the program by tools/scan-stocks.mjs.
When the curve sells out, pump.fun migrates the coin to its AMM, PumpSwap, still quoted in the stock. The creator fee continues there, and the payment below sweeps it in.
The crew is locked
pump.fun’s fee program (pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ) lets a coin’s creator move its creator fee into a sharing config: up to ten wallets with shares in basis points that add to 10,000. Waggle’s launch does it in the transaction right after the create:
create_fee_sharing_config— the curve’screatorbecomes the sharing config, so no single wallet can collect the fee;update_fee_shares_v2— sets the crew and setsadmin_revoked = truein the same instruction. It can never be called again.
Waggle allows up to 8 wallets, not ten: a payment names every wallet and its stock account, and the fork run measured that a ten-wallet payment cannot fit in one Solana transaction (1,232 bytes), so a crew of ten could never be paid. Eight fits, at 1,180 bytes.
pump.fun keeps one power over every coin on its platform: its community-takeover (CTO) process, run by pump.fun, can reassign a coin’s creator fees. That is pump.fun’s rule, not ours, and Waggle cannot change it.
Anyone pays the crew
Creator fees accumulate in pump.fun’s creator vault for the sharing config (and, after graduation, in PumpSwap’s). distribute_creator_fees_v2 is permissionless: whoever sends it pays the network fee, and every crew wallet receives vault × share ÷ 10,000 of the stock, its token account created on the spot if it has none. Waggle’s “Pay the crew” button sends exactly that, plus the sweeps pump.fun requires first.
What a launch signs
- Swap SOL for the stock (only if your first buy is paid in SOL) — a Jupiter transaction.
- Create the coin —
create_v2with the stock as quote and your creator fee; the creator vault’s stock account; and a 0-lamport transfer to Waggle’s registry address23kBxmfSdCqAkr2izQE9rDUHqVFWr1krQ2BTguyJRc4i, a system-program address nobody holds a key to. That mark is how the coin list finds Waggle coins. - Lock the crew — the two fee-program instructions above.
- Your first buy —
buy_exact_quote_in_v3, after the lock, so its creator fee already goes to the crew.
All of them are signed in one wallet prompt and sent in that order, each confirmed before the next. Measured on a copy of mainnet: Create the coin 1132 B, 187263 CU; Lock the crew 991 B, 176517 CU; First buy 797 B, 117260 CU.
Buying and selling
Paying in the stock is one buy_exact_quote_in_v3. Paying in SOL is two transactions: Jupiter swaps SOL into the stock, and the buy spends exactly the swap’s guaranteed minimum, so it can never run short; anything the swap delivers above that stays in your wallet as stock. Selling is one sell_v3, plus a Jupiter swap of the sale’s guaranteed minimum back to SOL if you ask for SOL. Every buy and sell carries a floor: 3% under the curve’s own quote.
How it was tested
Every property runs against a private copy of Solana mainnet (surfpool, forking live state through a rotating relay of public nodes): the real pump.fun programs, the real xStock mints, real Jupiter routes. The transactions are built by the same module, through the same bundle, the browser runs; every expected number is computed in the test from the rule it claims, never by asking the module under test.
The last run: 7/7 properties and 100 checks passed on a fork of mainnet (05 Nov 2026). And in a real browser: headless Chrome drove these pages with a test wallet against the same kind of fork — 6/6 journeys, 27 checks, each outcome read back from the chain by the harness (05 Nov 2026).
| # | Property | Checks |
|---|---|---|
| P1 | A launch makes a pump.fun coin quoted in the stock, locks the crew before the first buy, and the registry lists it launch transactions: Create the coin 1132 B, 187263 CU; Lock the crew 991 B, 176517 CU; First buy 797 B, 117260 CU a launch cost the launcher 0.0241 SOL in rent and fees (first buy paid in the stock) | 16 |
| P2 | The crew rules are pump.fun's, checked before signing; once locked, nobody — the launcher included — can change them | 14 |
| P3 | Buying and selling in the stock spends exactly what was asked and never delivers less than the floor a 7.5 NVDAx buy and a sale on a 3% coin: buy 75358 CU, sell 90338 CU | 23 |
| P4 | Anyone can pay the crew, and each wallet gets exactly its share of what was waiting, in the stock pay the crew (3 wallets): 850 B, 161338 CU 1.069076 NVDAx paid to a 50/30/20 crew as 0.534538 / 0.320723 / 0.213815 | 16 |
| P5 | Paying in SOL: Jupiter swaps into the stock and the buy spends exactly the swap's guaranteed minimum; selling back to SOL works too 0.25 SOL → 0.063291 TSLAx (guaranteed) via Meteora DLMM > Raydium CLMM > Meteora DLMM → 7568005039452 tokens | 10 |
| P6 | The largest crew fits: an eight-wallet lock and payment each fit one transaction, at pump.fun's highest fee 8-wallet crew: lock 1162 B, pay 1180 B / 372142 CU | 6 |
| P7 | After graduation: a sold-out curve migrates to PumpSwap, trades there in the stock, and a crew of eight is still paid exactly the NVDAx curve completed with 46.86 NVDAx in it graduated 8-wallet payment: Sweep the fees into the vault 898 B then Pay the crew 1092 B; 0.827660 NVDAx paid | 15 |
One boundary of the fork: the proprietary market makers Jupiter often routes through (GoonFi, HumidiFi, Tessera…) quote from prices their operators push every slot, which a fork cannot replay — so the fork run restricts Jupiter to on-chain AMMs. The live site uses every route.
Addresses
| pump.fun bonding curve | 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P |
| pump.fun fee sharing | pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ |
| PumpSwap (pump.fun AMM) | pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA |
| Token-2022 (coins and xStocks) | TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb |
| Jupiter (SOL ⇄ stock) | JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 |
| Waggle registry (no key) | 23kBxmfSdCqAkr2izQE9rDUHqVFWr1krQ2BTguyJRc4i |
Risks, plainly
- Memecoins usually go to zero. A crew is paid only while people trade.
- xStocks are issued by Backed and track listed shares; they can fall, and they are not available in every country.
- pump.fun runs the programs and can upgrade them; its CTO process can reassign creator fees.
- This website is experimental and has not been audited. It holds nothing and deploys nothing, so there is nothing of ours to hack — but read what your wallet shows you before you sign.