The Raydium API for real-time AMM v4, CLMM and CPMM data on Solana
Raydium isn't one program, it's three. AMM v4, CLMM, and CPMM each have their own contract address, their own IDL, their own fee math, and any "Raydium API" that doesn't cover all three is missing real volume. The official api-v3 endpoint covers none of them at the instruction level; their own docs flag it as not built for real-time tracking. So most teams end up filtering logsSubscribe, paying the JSON parsing tax, and writing three IDL decoders by hand. We've already done that part. NoLimitNodes ships parsed Raydium events over gRPC: swap, openPosition, initialize2, all of them. Typed and ready, 12ms p50 from slot landing to your socket.
- Raydium AMM v4 (Liquidity Pool V4)675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8, Constant-product pools. The original Raydium AMM, OpenBook integrated
- Raydium CLMM (Concentrated Liquidity)CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK, Uniswap V3-style concentrated liquidity with position NFTs
- Raydium CPMM (Constant Product MM)CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C, Newer constant-product pools used by Raydium Launchpad
- Raydium Authority V45Q544fKrFoe6tsEbD7S8EmxGTJYAKtTVhAW5Q5pge4j1, AMM v4 vault authority. Used to derive pool PDAs
Try it live: Raydium streams
decoded solana events over grpc · click Run to see live data
1grpcurl -H "x-api-key: YOUR_API_KEY" \
2 -d '{"topic":"prod.mat.solana.program.swaps.raydium_amm_v4","format":"JSON"}' \
3 stream-1.nln.clr3.org:443 nln.stream.v1.StreamService/SubscribeSee real data
Click Run to stream 5 live Raydium AMM v4 messages
Pro: 2 streams $49/mo · Ultra: 20 streams $199/mo · pre-parsed, zero infra
The Raydium events you can stream
every decoded instruction across AMM v4, CLMM, and CPMM
| Event | Type | Description | Frequency | Latency |
|---|---|---|---|---|
| swap | instruction | AMM v4 base-in or base-out swap. Decoded to amountIn, minimumAmountOut, side, pool keys. | Very high | 12ms |
| initialize2 | instruction | New AMM v4 pool launch. The instruction every sniper bot watches; surfaces new pairs before they appear in any aggregator. | Medium | 12ms |
| deposit | instruction | AMM v4 LP deposit. Includes max coin amount and max PC amount with computed LP shares. | High | 12ms |
| withdraw | instruction | AMM v4 LP withdrawal. Provides LP token amount burned and the resulting coin/PC payouts. | High | 12ms |
| swapV2 | instruction | CLMM concentrated-liquidity swap. Decodes tick range, sqrt price limit, and exact-in vs exact-out. | Very high | 14ms |
| openPosition | instruction | CLMM new position NFT mint with tick lower / tick upper. Used to track liquidity range entries. | High | 14ms |
| increaseLiquidity / decreaseLiquidity | instruction | CLMM position adjustments. Track LP rebalancing and just-in-time liquidity strategies. | Medium | 14ms |
| collectFee | instruction | CLMM fee collection by LPs. Useful to compute realized yield for a position. | Medium | 14ms |
| createPool (CPMM) | instruction | CPMM pool creation. Surfaces Raydium Launchpad graduations and new constant-product pairs. | Medium | 14ms |
| swapBaseInput / swapBaseOutput (CPMM) | instruction | CPMM swaps with explicit base input or output side. Lower fee than AMM v4, used by Launchpad pairs. | High | 14ms |
Raydium streaming performance
last reviewed 2026-04-28
What “the Raydium API” actually gives you (and what it doesn't)
The official surface at api-v3.raydium.io is a REST service. It returns the live pool list, mints, prices, and farm metadata, and it's fine if you're refreshing a chart. The pages people share when they say “use the Raydium API” point at the Swagger spec, which is exactly what that endpoint is for.
What it isn't for: catching new pools as they launch. Sizing a swap before the next slot. Tracking a CLMM position drifting out of range. Anything where freshness matters in seconds, not in “roughly when the next polling cycle fires.” Raydium's own docs spell it out. The API isn't built for real-time tracking.
The actual real-time surface is on chain. Every swap, every initialize2, every openPosition lands in a Solana transaction within ~400ms of slot processing. The job is to subscribe to the program, decode the bincode payload against the right IDL, and route the result to a typed handler. That's three programs (AMM v4, CLMM, CPMM), three IDLs, and three discriminator routing tables. Fine for a dedicated team. Annoying as a side quest while you're trying to ship a bot.
We've been running that decoder for the last 18 months. Subscribe to our gRPC and you skip the IDL-loading step entirely; the events arrive parsed.
The three Raydium programs and their on-chain footprints
Calling them “Raydium v4” is shorthand. There are three deployed programs, each with a different fee model, account layout, and instruction set. Touching any one without the others means missing the trade you cared about.
The original. Constant-product math (x·y=k) wired into the OpenBook orderbook so liquidity also serves the central limit order book. Still settles the bulk of Raydium volume across roughly 8,200 active pools last we checked.
The Uniswap V3 port. Liquidity goes into a tick range; LPs get a position NFT. More capital-efficient, much more annoying to follow. Every LP lifecycle event moves through openPosition, increaseLiquidity, decreaseLiquidity, and collectFee. Four discriminators, not one.
The newest. Constant-product again, but cheaper and simpler than AMM v4. Used by Raydium Launchpad and the post-Pump.fun graduations that route through Raydium instead of PumpSwap. The createPool instruction is the canonical “this token graduated” signal here.
A working Raydium feed is therefore three subscriptions, three IDLs loaded into your client, and three pricing models in your bot. Or one parsed stream from us where each event carries a programVariant tag and the rest is yours.
REST, WebSocket, or gRPC: pick one based on what hurts
There's no universally right transport. There's a right one for the job in front of you. The mistake is picking the wrong layer and then blaming Solana when fills miss.
| Transport | Right for | Latency | Decoded? |
|---|---|---|---|
| REST (api-v3) | Charts, dashboards, aggregators | 5-30s polling | Yes (high-level only) |
| WebSocket (logsSubscribe) | Prototypes, side projects | ~400ms after slot | No, raw program logs |
| gRPC (Yellowstone) | Anything trade-adjacent | Sub-50ms p99 | Yes (with NoLimitNodes parsing) |
REST is right if a human is looking at the data. The freshness cap is the polling interval, full stop.
WebSocket logsSubscribe works for prototypes. It also breaks at scale. JSON framing is expensive: a single TCP connection caps out in the low hundreds of messages per second in practice, and you're decoding base64 program logs on the client. We've watched teams ship with logsSubscribe and quietly migrate to gRPC six weeks later.
Yellowstone gRPC is what every credible Solana data product runs on. Triton built the protocol. Helius LaserStream rewrapped it. Shyft and QuickNode put their own UX on top. We did the same. The wire is identical across vendors; the differences are in pricing, parsing, and which programs you get out of the box.
The real lever on top of gRPC is whether the events arrive decoded. Raw means you load the IDL, match discriminators, and write the routing yourself. You control everything; you also maintain it. Parsed means we did that work; you trade some flexibility for speed of integration. We ship parsed for AMM v4, CLMM, and CPMM. See the Yellowstone gRPC nodes page for the underlying transport.
What teams build with this
Sniper bots
Watch initialize2 on AMM v4 and createPool on CPMM. Both fire with the mint addresses and initial reserves in the instruction itself, so you can size and submit the buy without a separate getMint round-trip. The fastest snipers we see clock under 20ms from instruction-landing to bundle-submitted on our gRPC. The latency budget is mostly your code, not ours.
MEV searchers
Cross-program subscriptions feed the pool-state cache: every AMM v4 swap, every CLMM tick crossing, every CPMM fill, in one stream. Pair with Jupiter route data and you're the first to see arb windows close.
Analytics & OHLC
The parsed swap event carries both legs already priced, so you skip the decimals-and-mints normalization that REST aggregates force on you. Bucket by time, you get clean candles. Bucket by trader, you get a leaderboard.
LP & portfolio dashboards
CLMM positions are NFTs, so following a wallet means subscribing to openPosition, increaseLiquidity, collectFee, and closePosition for that holder. accountInclude on the wallet PDA delivers exactly those updates and nothing else. No firehose, no filtering tax.
Pricing, and where we sit vs the rest
Three providers dominate this SERP and they each charge differently. Helius bills per event. Predictable for analytics workloads, surprising for snipers when AMM v4 has a 4M-trade day. QuickNode Streams uses a similar per-event meter with separate add-ons per program. Bitquery sells GraphQL access by query and dataset; if you want JOINed historical queries with rich filters, they're genuinely better at that than we are.
We don't do GraphQL. We charge flat. $49/month for two parsed streams (Pro), $199/month for twenty (Ultra). No per-event surcharge, no per-program add-on, no minimum that gets ugly when memecoin Tuesday lands. Pick AMM v4, CLMM, CPMM, or any combination, and add Pump.fun, Orca, Meteora, Jupiter, or anything else from the catalog.
There's also a 10x price guarantee: find a like-for-like quote that beats us and we'll refund 10x the difference. Plan breakdown is on the pricing page.
Frequently asked questions
Related products
Concentrated-liquidity events with tick-level resolution for Solana's second-largest CLMM.
Bin-based DLMM events. The differentiator vs constant-product and CLMM pools.
Browse every decoded instruction and event the Raydium AMM v4 program emits.
The streaming layer behind every NoLimitNodes Raydium subscription.
Backfill historical Pump.fun graduations into Raydium AMM v4 and CPMM.
Decoded Raydium events vs Helius parsed transactions. Coverage, latency, and price compared.
Start streaming Raydium in under 60 seconds
Pro plan from $49/mo includes 2 parsed streams (pick any of AMM v4, CLMM, CPMM, plus PumpFun, Orca, Meteora, and more). Ultra adds 20 streams and 30 hours of custom dev time.