Quote assets and pairs
The catalogue#
The launchable pairs come from StonkFun's public API, polled into the indexer and served at /quotes. Read against mainnet on 2026-09-23 that endpoint returns 509 pairs, every one of them marked both launchable and launchLabReady.
What the 509 are made of#
Category is StonkFun's own label on each pair. The token program column was resolved separately, by reading all 509 mint accounts from Solana mainnet with getMultipleAccounts on 2026-09-23, because the catalogue does not publish it.
| Category | Pairs | Token-2022 | Classic SPL | Decimals seen |
|---|---|---|---|---|
| custom | 389 | 194 | 195 | 6, 9, 8, 5, 11, 4, 2, 12 |
| backpack | 74 | 60 | 14 | 6, 9, 8, 4 |
| xstock | 24 | 24 | 0 | 8 |
| prestock | 7 | 7 | 0 | 9 |
| currency | 5 | 0 | 5 | 6, 9 |
| solana | 3 | 0 | 3 | 9, 6 |
| leverage | 3 | 0 | 3 | 6 |
| collectible | 2 | 0 | 2 | 6 |
| tessera | 2 | 2 | 0 | 9 |
| Total | 509 | 287 | 222 |
Categories, counts and decimals from the live /quotes response; token programs from getMultipleAccounts against Solana mainnet, all 509 mints resolved, 2026-09-23. Decimals are listed most common first.
The tokenized stocks#
All 24 xstock pairs share the same shape: Token-2022, 8 decimals, no exceptions. They are the category the product was designed around, and the only one where "a token priced in a stock" is literally true.
AMZNX APPLX BRKX COINX CRCLX DFDV
GLDX GMEX GOOGLX HOODX INTCX KOX
MCDX METAX MSFTX MSTRX NVDAX PLTRX
QQQX SPCXX SPYX STRCX TSLAX VIDAXA further 7 pairs are labelled prestock, also Token-2022, but at 9 decimals rather than 8.
The Token-2022 constraint#
None of the 24 tokenized stocks is affected: every one of them is Token-2022. The constraint bites in the custom category, where it is close to an even split, and on the currency, solana, collectible and leverage categories, which are classic SPL throughout. This is listed again on what is not built yet, because it is a real gap and not a design choice.
| Token program | Address | Pairs |
|---|---|---|
| Token-2022 | TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb | 287 |
| Classic SPL Token | TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA | 222 |
One figure worth having right if you are provisioning rent: a SPYX token account is 179 bytes, measured on chain. That is the 165-byte base, one byte of account type, then ImmutableOwner, TransferHookAccount and PausableAccount. A plain token account is 165.
Three further properties of the live SPYX mint make it easier to work with than its extension list suggests. Its TransferHook.programId is the system program, which Token-2022 treats as no hook at all, so a transfer needs no extra account metas. Its PausableConfig.paused is false. And its DefaultAccountState is Initialized rather than Frozen, so no account the program creates needs thawing by the issuer before it can receive anything.
Decimals, and why they matter#
The quote's decimals are not cosmetic. StonkFun's raise amount is a raw amount in the quote's decimals, and the Raydium SDK's default of 85 SOL becomes 850 units on an 8-decimal stock and 85,000 on a 6-decimal stablecoin. StonkFun's own warning is that a launch which copies the constant blindly will graduate at a market cap nobody intended.
| Decimals | Pairs |
|---|---|
| 6 | 372 |
| 9 | 82 |
| 8 | 44 |
| 5 | 5 |
| 4 | 2 |
| 11 | 2 |
| 2 | 1 |
| 12 | 1 |
From the live /quotes response, 2026-09-23, all 509 pairs. Every program instruction that moves quote reads decimals off the mint and passes them to transfer_checked, so the program itself is decimal-agnostic; the launch sizing is not.
The quote mint is recorded on the policy#
There is no protocol-wide quote mint. Every quote-denominated account on a policy, meaning the bankroll, both escrows, the holder rewards account and every registered venue account, is held in that policy's own quote_mint, and register_venue_account rejects a token account held in anything else. The protocol fee destination is stored as a wallet rather than a token account for the same reason: its associated token account is derived per call, for whichever stock that policy happens to be quoted in.
Reading the catalogue yourself#
$ curl -s 'http://127.0.0.1:8941/quotes?search=SPY' | head -20
{
"source": "stonkfun:/pairs + /launchlab/pricing",
"items": [
{
"mint": "XsoCS1TfEyfFhfvj8EtZ528L3CaKBDBRqRapnBbDF2W",
"symbol": "SPYX",
"name": "SP500",
"decimals": 8,
"category": "xstock",
"launchable": true,
"launchLabReady": true,
"logoUrl": "https://www.stonkfun.xyz/api/asset/quote-logo/...",
"policyCount": 0,
"startMarketCapUsd": null,
"graduationMarketCapUsd": null,
"graduationMultiple": null
}
]
}