Every new SPL and Token-2022 mint on Solana, the moment it lands
Solana mints a lot of tokens. Most are spam. Some are real. Telling them apart in real time means watching three things at once: InitializeMint on the SPL Token program, InitializeMint on Token-2022 (the newer standard with transfer hooks and confidential transfers), and the Metaplex Metadata create that names the thing. Plus, on the memecoin side, the Pump.fun create instruction, which mints, names, and seeds a bonding curve all in one transaction. Four signals, four programs, four decoders. We merge them into a single typed event stream over gRPC. p50 ~12ms from slot landing to your callback. Each event carries the mint address, the creator wallet, decimals, supply cap, mint and freeze authority, and (when present) the Metaplex name, symbol, URI, and creators array.
- SPL Token programTokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA, The original token program. InitializeMint and InitializeMint2 fire on every new mint
- Token-2022 programTokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb, The newer standard with extensions: transfer hooks, confidential transfers, transfer fees
- Metaplex Token MetadatametaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s, CreateMetadataAccountV3 attaches name, symbol, URI, and creators to a mint
- Pump.fun program6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P, create instruction mints the token and seeds the bonding curve in one transaction
The token-creation events you can stream
every InitializeMint, Metaplex create, and Pump.fun launch
| Event | Type | Description | Frequency | Latency |
|---|---|---|---|---|
| InitializeMint (SPL Token) | instruction | New SPL Token mint. Carries decimals, mint authority, and freeze authority. Pre-rent-exempt mints are filtered out. | Very high | 12ms |
| InitializeMint2 (SPL Token) | instruction | Variant that omits the rent sysvar. Same payload semantics, used by newer SDKs. | High | 12ms |
| InitializeMint (Token-2022) | instruction | Token-2022 mint init. Followed by InitializeMintCloseAuthority, InitializeTransferHook, etc, depending on extensions. | Medium | 12ms |
| CreateMetadataAccountV3 (Metaplex) | instruction | Attaches name, symbol, URI, sellerFeeBps, creators array, and isMutable flag to a mint. | High | 12ms |
| create (Pump.fun) | instruction | Pump.fun launch. Mints the token, attaches metadata, and seeds the bonding curve in a single transaction. | Very high | 12ms |
| InitializeTransferHook (Token-2022) | instruction | Token-2022 extension that routes transfers through a hook program. Worth flagging for compliance and risk scoring. | Low | 14ms |
| SetAuthority (mint authority changes) | instruction | Tracks mint and freeze authority transfers, including the canonical "renounce to null" rug-detection signal. | High | 14ms |
| UpdateMetadataAccountV2 (Metaplex) | instruction | Mutable metadata updates. Useful for catching name/URI swaps after the fact. | Medium | 14ms |
Token-creation streaming performance
last reviewed 2026-04-28
SPL Token vs Token-2022: what's actually different
Two token programs run on Solana mainnet. The original SPL Token program at TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA carries the bulk of supply and the bulk of new mints. Token-2022 at TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb is the newer standard. Same shape at the surface, deeper feature set underneath.
From the InitializeMint perspective they look almost identical. Both take decimals, mint authority, freeze authority, and produce a fresh mint account. The differences live in the extensions Token-2022 supports:
- Transfer fees. The mint can skim a percentage on every transfer. The fee accumulates in a withheld balance the authority can withdraw later.
- Transfer hooks. Every transfer routes through a separate program, which can run arbitrary logic. The most common use case is compliance gating.
- Confidential transfers. Amounts are encrypted on chain. Useful for institutional flow, harder for indexers.
- Immutable owner. ATAs can't change owner. Removes a class of phishing attacks.
- Default account state. New accounts can start frozen by default and require explicit unfreeze.
For real-time tracking, that means a Token-2022 init is rarely a single instruction. It's an InitializeMint plus one InitializeXxxExtension instruction per active feature, all in the same transaction. The stream surfaces each, and the parsed event includes a flat extensions array so you don't have to walk the inner instructions yourself.
InitializeMint vs Metaplex metadata: which signal you actually want
A mint is a number. A token, in the human sense, is a mint plus a name. The two come from different programs.
InitializeMint creates the on-chain account at a fixed PDA-derived address with a decimals byte and two authority pubkeys. That fires constantly. Many of those mints are program PDAs, ATAs that got their authority transferred, vault tokens, or other internal plumbing that never goes anywhere. Filtering on InitializeMint alone gives you a noisy firehose with a high false-positive rate if your goal is “new tradable tokens.”
The cleaner signal is CreateMetadataAccountV3 on the Metaplex Token Metadata program metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s. When someone pays the rent for a metadata account that names a token, they're telling you they want humans to find it. That single instruction carries name, symbol, URI (off-chain JSON with image and description), sellerFeeBps, the creators array, and an isMutable flag.
The combination is what you want. Subscribe to InitializeMint across both token programs, then within the same transaction or the next few slots, look for a CreateMetadataAccountV3 referencing the same mint. We do that correlation on our side and emit one merged event per token launch, so the stream you consume is clean by default. If you specifically want the unnamed-mints firehose (e.g. for detecting program-internal token issuance), filter to mints without a metadata sibling.
Pump.fun bonding-curve creates as a special case
Pump.fun pioneered the “everything in one transaction” token launch on Solana. Their create instruction on 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P does an InitializeMint, a CreateMetadataAccountV3, and seeds a bonding-curve account. One signature, one slot, one ready-to-trade token.
That packaging matters because it changes what filters work. If you only watch SPL InitializeMint, you'll see Pump.fun launches but you won't know they're Pump.fun launches without checking signers. If you only watch Pump.fun, you miss everything else. We surface Pump.fun creates as their own event variant tagged source: "pumpfun" so the routing is trivial.
The bonding curve itself is interesting after the create. It moves token price along a deterministic function of supply, capped at a market-cap threshold (~$69k SOL-denominated at the time of writing) at which point Pump.fun graduates the token by burning the bonding curve and creating a real pool, usually on PumpSwap. For the full lifecycle, pair this stream with the dedicated Pump.fun Enhanced Stream and the Pool Creations stream.
Detecting rugs and risky launches
Most new tokens are bad. That's the baseline. Useful risk detection isn't a single metric, it's a vector you build off the create event and the wallet behavior around it.
Mint authority not null
Anyone holding mint authority can dilute the supply. Track whether it's renounced (set to null) and how soon after launch. Tokens that hold mint authority through the first hour of trading are higher risk by default.
Freeze authority held
Holdable freeze authority means the team can freeze any holder's token account. Even if it's never used, the existence is a soft-rug signal that some snipers automatically blacklist.
Creator pre-mine
The creator wallet sending a large fraction of supply to a fresh wallet within minutes of launch. Pair this stream with the wallet-transfers feed to catch it live.
Mutable metadata
isMutable=true on the Metaplex metadata means the team can swap the name, symbol, or image after launch. Common in scam tokens that impersonate larger projects after early buyers are in.
We don't score risk for you; we ship the raw signals. What you do with them is the difference between a useful product and a generic one.
What teams build with the new-mint stream
The stream is a building block. Five places we see it land in production:
Sniper bots. Especially Pump.fun-only bots. Filter on the Pump.fun program, decode the create, place a buy in the same slot. The fastest entries we observe clock under 30ms from create to buy submitted.
Wallet apps. Phantom, Solflare, and Bull all need to label new tokens in real time so users see “BONK” instead of a base58 mint string. The combined SPL + Metaplex feed is the cleanest way to populate that label cache.
Risk-scoring services. Birdeye, DexScreener, and a handful of internal team tooling all consume similar streams to flag rugs before users buy. Mint authority, freeze authority, mutable metadata, and creator history are the inputs.
Indexers and analytics. Bitquery, Helius, and the rest of the analytics tier index every new mint into searchable tables. If you're building your own analytics product downstream, the stream is the ingestion source you want.
Memecoin trackers. Discord bots, Telegram alerts, and X automations posting every new launch with a quick risk summary. The stream firehoses cleanly into a low-latency message queue.
Frequently asked questions
Related products
Full Pump.fun stream including buys, sells, and bonding-curve completions, on top of the create signal.
Pair token creates with new-pool launches to follow tokens from mint through first liquidity.
Pre-mine detection and creator-wallet tracking, paired with the new-mint feed.
Browse every decoded Solana program we expose, including SPL Token, Token-2022, and Metaplex.
The streaming layer behind every NoLimitNodes token-creation subscription.
18 curated topics across DEXes, lifecycle, and system events. The catalog hub.
Start streaming new mints in under 60 seconds
Pro plan from $49/mo includes 2 parsed streams. Token Creations counts as one stream and covers SPL Token, Token-2022, Metaplex metadata, and Pump.fun creates in a single feed. Ultra adds 20 streams.