Enhanced Stream

Every new Solana liquidity pool, the moment it lands, in one stream

New pool detection on Solana isn't a single subscription. It's five. Raydium AMM v4 fires initialize2. Raydium CPMM fires createPool. Meteora DLMM fires initialize_lb_pair. Orca Whirlpool fires initializePool. PumpSwap fires create_pool. Five program IDs, five instruction names, five different account layouts, and any tracker that misses one is missing real launches. Birdeye and DexScreener show new pairs after their indexers catch up; you want the same data, decoded, before the aggregators see it. NoLimitNodes ships every pool-launch instruction across all five programs over a single gRPC stream, parsed, with the base mint, quote mint, initial reserves, and pool address already extracted. p50 from slot landing to your callback is around 12ms.

All five major DEXes coveredSub-50ms latencyDecoded base/quote mintsgRPC + WebSocketPre-aggregator detectionFree RPC tier
On-chain programs

The pool-launch instructions you can stream

every initialize_* across Raydium, Meteora, Orca, and PumpSwap

EventTypeDescriptionFrequencyLatency
initialize2 (Raydium AMM v4)instructionNew constant-product pool on AMM v4. Carries base mint, quote mint, openTime, and initial coin/PC amounts.Medium12ms
createPool (Raydium CPMM)instructionNew CPMM pool. Used by Raydium Launchpad. Carries token0/token1 mints, AMM config, and initial liquidity.High12ms
initialize_lb_pair (Meteora DLMM)instructionNew DLMM pair launch. Includes activeId (active bin), binStep, base/quote mint pair.Medium12ms
initialize_lb_pair2 (Meteora DLMM)instructionVariant of initialize_lb_pair with extended preset config support. Same signal, different account shape.Medium12ms
initializePool (Orca Whirlpool)instructionNew Whirlpool. Carries token mint A/B, tickSpacing, and initialSqrtPrice.Medium12ms
initializePoolV2 (Orca Whirlpool)instructionToken-2022-aware pool initialization. Required for any pair where one mint is the new SPL standard.Low12ms
create_pool (PumpSwap)instructionPumpSwap pool creation, the moment a Pump.fun bonding curve graduates and migrates liquidity.High12ms
deposit (first LP)instructionFirst liquidity-add following pool init. Useful when initial reserves on init are zero and the real size lands one tx later.High14ms

Pool-launch streaming performance

last reviewed 2026-04-28

gRPC subscribe latency
12ms
p50 from slot landing to your socket; pool-init transactions, mainnet
Verified 2026-04-28
Daily new pools
3-8k / day
Combined initialize2 + createPool + initialize_lb_pair + initializePool + create_pool
Verified 2026-04-28
PumpSwap graduations
300-900 / day
Pump.fun bonding-curve completions migrating to PumpSwap pools
Verified 2026-04-28
Stream uptime SLO
99.95%
Pro and Ultra plans, monthly rolling

The cross-DEX pool-launch problem nobody warns you about

The first time you build a new-pool tracker, you write it for one DEX. Probably Raydium AMM v4. You filter on initialize2, the pool addresses come through, and you ship.

Then a memecoin launches on Meteora DLMM and you don't see it. Then a Pump.fun graduation hits PumpSwap and you don't see it. Then a stable pair launches on Orca Whirlpool and you don't see it either. Each program has its own init instruction, its own discriminator, its own account layout, and its own way of encoding base mint, quote mint, and initial reserves.

A complete launch tracker on Solana is five subscriptions. Five IDLs. Five decoders. Or one parsed feed that already merges them. That's the version we ship.

The five program IDs you actually need to watch

Raydium AMM v4: initialize2

The classic sniper signal. Constant-product pool, OpenBook integrated. Carries coin_mint, pc_mint, open_time, and the initial coin/PC amounts.

675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8
Raydium CPMM: createPool

The newer constant-product. Cheaper than AMM v4, simpler accounts, used by Raydium Launchpad and Pump.fun graduations that route into Raydium instead of PumpSwap.

CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C
Meteora DLMM: initialize_lb_pair

Bin-based AMM. The init carries activeId (the bin where price starts) and binStep (the spacing). Both matter if you're sizing entries.

LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo
Orca Whirlpool: initializePool

CLMM init. Carries token mint A/B, tickSpacing, and initialSqrtPrice. Use initializePoolV2 for Token-2022 pairs.

whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc
PumpSwap: create_pool

Pump.fun's post-graduation AMM. Whenever a bonding curve completes, the migration program creates a PumpSwap pool with create_pool. If you only watch Raydium, you miss the bulk of memecoin graduations.

pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA

One stream. Five filters. Each event we ship carries a programVariant tag so you can route handlers without re-decoding the discriminator on your side.

What each initialize_* actually carries

The headline question is always the same: where in the instruction do I find the base mint, the quote mint, and the initial reserves. Different program, different answer.

ProgramBase / quoteInitial sizeQuirk
AMM v4coin_mint, pc_mintinit_coin_amount, init_pc_amountopen_time can be future-dated
CPMMtoken0_mint, token1_mintinit_amount0, init_amount1amm_config selects fee tier
DLMMtokenMintX, tokenMintY0 at init; deposits land lateractiveId + binStep set initial price
WhirlpooltokenMintA, tokenMintB0 at init; first openPosition adds liqinitialSqrtPrice sets price
PumpSwapbase_mint, quote_mint (SOL)migrated curve reserves, in same txgraduation authority signs

The big footgun is DLMM and Whirlpool. The init instruction doesn't seed liquidity; that's a separate transaction. If you size a buy off “init reserves” on those two, you'll be sizing off zeros. Our parsed event includes a firstLiquidityTx field that points to the first real deposit so you can wait for it before submitting.

Pre-aggregator detection vs Birdeye and DexScreener

Birdeye and DexScreener both publish “new pairs” pages. They're great for browsing. They're also indexers; what you see there is the chain seconds-to-minutes after the slot. Plenty of time for the snipers who've been on chain since the init landed to be in and partially out before the page even updates.

The same is true for PumpPortal on the Pump.fun side. The data is accurate, the surface is convenient, the latency cap is the indexer.

On chain, there is no indexer. The instruction lands at slot N, the validator gossips at slot N, our gRPC pushes at slot N, you see it ~12ms later. If you're trying to be first into the pool, that gap is the whole game. Pair the launch detection with our gRPC nodes and Jito bundle submission and the bot is fighting for slot priority, not waiting on a polling cycle.

The honest caveat: not every launch is worth sniping. Roughly 90% of new pools are rugs, soft rugs, or just dead on arrival. The stream gives you the same firehose the snipers see; the filter for which launches are worth touching is your edge, not ours.

What teams build with the launch stream

Sniper bots

Subscribe, decode, size, submit. The instruction itself carries base mint, quote mint, and (on AMM v4 and CPMM) initial reserves. No getMint round-trip needed. The fastest snipers we see clock ~25ms from slot landing to bundle submitted.

Anti-sniper / safety

The same feed powers rug-detection services. Cross-reference launches against creator wallets, mint authorities, and existing holdings to score risk before users see the pool in a UI.

Listings dashboards

New-pair feeds for your own UI. The parsed events include venue, pair, initial price, and creator wallet, which is the minimum data set for a useful listings page.

Graduation analytics

Pump.fun → PumpSwap and Pump.fun → Raydium CPMM graduations. The stream tags each create_pool / createPool with the upstream bonding curve so you can compute graduation rates and post-grad performance.

Frequently asked questions

Subscribe to the five pool-creation instructions across the five programs that matter: initialize2 on Raydium AMM v4 (675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8), createPool on Raydium CPMM (CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C), initialize_lb_pair on Meteora DLMM (LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo), initializePool on Orca Whirlpool (whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc), and create_pool on PumpSwap (pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA). Each one fires at the moment of launch. Our parsed feed merges all five into a single typed event stream over gRPC.

Start streaming new pool launches in under 60 seconds

Pro plan from $49/mo includes 2 parsed streams. Pool Creations counts as one stream and covers all five programs in a single feed. Ultra adds 20 streams.

Ready to get started?

Get your free API key and start building in under 30 seconds.

Talk to Sales