Enhanced Stream

The Orca Whirlpool API: real-time concentrated liquidity data on Solana and Eclipse

Whirlpool is Solana's second-biggest concentrated liquidity venue, and the same program ID runs on Eclipse mainnet. That makes it the only major Solana DEX with first-class cross-chain CLMM coverage out of the box. The official dev surface is genuinely thin: a Web3.js v2 SDK, a Rust SDK, and a REST endpoint at api.orca.so. All useful, none built for sub-second streaming. We watch the program directly and ship parsed Whirlpool events over gRPC: every swap, openPosition, increaseLiquidity, collectFees, and tick-array crossing, decoded as the transaction lands. 13ms p50 from slot to socket.

Solana + EclipseTick-array decodingPosition NFT trackingSub-50ms latencygRPC + WebSocket
On-chain programs

Try it live: Orca Whirlpool streams

decoded solana events over grpc · click Run to see live data

Orca Whirlpool
1grpcurl -H "x-api-key: YOUR_API_KEY" \
2  -d '{"topic":"prod.mat.solana.program.swaps.orca_whirlpool","format":"JSON"}' \
3  stream-1.nln.clr3.org:443 nln.stream.v1.StreamService/Subscribe
Live Output

See real data

Click Run to stream 5 live Orca Whirlpool messages

Pro: 2 streams $49/mo · Ultra: 20 streams $199/mo · pre-parsed, zero infra

The Whirlpool events you can stream

every decoded instruction across swap, position, and pool lifecycle

EventTypeDescriptionFrequencyLatency
swapinstructionWhirlpool swap (legacy). Decoded with sqrt-price-limit, tick-array crossings, and amount in/out.Very high13ms
swapV2instructionToken-2022 aware swap with extension support. The current default for Whirlpool clients.Very high13ms
openPositioninstructionMints a new Whirlpool Position NFT for a tick range. The canonical LP entry signal.High13ms
openPositionWithMetadatainstructionSame as openPosition but with Metaplex token metadata attached to the Position NFT.Medium13ms
increaseLiquidityinstructionAdds tokens to an existing position. Includes both A and B token amounts and the resulting liquidity delta.High13ms
decreaseLiquidityinstructionWithdraws liquidity from a position. Often paired with collectFees + closePosition for full exits.High13ms
collectFeesinstructionRealizes the fees accrued in a Position. Useful for computing per-position yield.Medium13ms
collectRewardinstructionClaims the reward emissions on positions in incentivized pools (up to three rewards per pool).Medium13ms
closePositioninstructionBurns the Position NFT after liquidity is fully withdrawn. Marks position lifecycle end.Medium13ms
initializePoolinstructionCreates a new Whirlpool with a chosen tick spacing (fee tier). Surfaces new pair launches.Low13ms
updateFeesAndRewardsinstructionRefreshes the per-position fee + reward growth checkpoint. Required before collectFees / collectReward.Medium13ms

Whirlpool streaming performance

last reviewed 2026-04-28

Whirlpool swap latency
13ms
p50 from slot landing to your socket
Verified 2026-04-28
Active Whirlpools tracked
3,000+
Solana + Eclipse mainnet combined
Verified 2026-04-28
Daily swap instructions
500k-1.5M
Across all Whirlpools. Solana mainnet
Stream uptime SLO
99.95%
Pro and Ultra plans, monthly rolling

What Whirlpool actually is, and the unusual bit

Whirlpool is Orca's concentrated-liquidity AMM, modeled on Uniswap V3. LPs pick a tick range, supply both tokens in a ratio that depends on where price sits in that range, and earn fees only while the active price is inside their bounds. Swaps consume liquidity tick by tick until the input is filled, so executions walk through precisely-priced bins instead of a smooth curve. So far, standard CLMM mechanics.

Here's the unusual bit. The same program ID is deployed on Solana mainnet and Eclipse mainnet, byte-for-byte identical IDL. Whirlpool ends up as the only major Solana DEX with first-class cross-chain CLMM coverage out of the box. For data consumers this is a small win that compounds: one parsed-event handler, one decoder, two chains.

The Whirlpool program ID and account model

Program ID: whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc. It owns four account types that together describe every CLMM pool, every LP entry, and the fee structure they live under.

Whirlpool

The pool itself. Token A / token B mints, current sqrt-price (Q64.64), tick spacing, fee rate, protocol fee, reward info[3]. Watch sqrt-price for live price; watch tickCurrentIndex for cross-tick events.

TickArray

A fixed-size account holding 88 contiguous initialized ticks. Every swap that crosses a tick boundary writes to one or more. Tracking which TickArrays a pool actively uses tells you where liquidity concentrates.

Position

An LP entry, paired with a Position NFT. Holds tickLower, tickUpper, liquidity, feeOwedA/B, and the per-position fee growth checkpoint. The NFT is the access token to manage the position.

WhirlpoolsConfig + FeeTier

Top-level configuration and the supported tick spacings (1, 8, 64, 128, 256). Every Whirlpool resolves to one FeeTier; reading these tells you which fee bucket a pool sits in.

Three ways to query Whirlpool data: REST, SDK, gRPC

Orca offers two surfaces. The on-chain stream is a third. Each fits a different use case; mixing them in a single product is normal.

SurfaceRight forLatencyDecoded?
api.orca.so RESTPool dashboards, leaderboardsPolling, ~10-30s lagYes (aggregates only)
@orca-so/whirlpools SDKApp backends, periodic syncsPer-RPC-callYes (typed account fetch)
Yellowstone gRPCBots, MEV, market makingSub-50ms p99Yes (NoLimitNodes parsed)

The SDK is the right tool when you need a single Whirlpool's state on demand: fetching positions for a wallet, computing quote previews, building a one-shot query. gRPC is the right tool when you need everything happening live across many pools. REST is fine for a chart on a dashboard. Don't pick gRPC for a chart and don't pick REST for a bot. See the gRPC nodes page for transport details.

What teams build with Whirlpool data

LP analytics & range monitors

Watch tickCurrentIndex on each Whirlpool. When the active tick crosses outside a tracked Position's tickLower/tickUpper, that position stops earning fees. That's your rebalance signal. The parsed swap stream gives you the cross within ~13ms.

Fee dashboards

collectFees, increaseLiquidity, and decreaseLiquidity together give you the inputs and outputs to compute per-position yield curves. Anchor IDL decoding gives you the exact fee currency split per position with no hand-rolled math.

MEV & arb

Whirlpool swaps are a primary input to Solana arb engines that equalize price across Raydium, Meteora, and Orca. Real-time sqrt-price updates let you compute the post-trade pool state before the next slot lands. That's the whole game.

New-pool detection

Filter on initializePool to catch new Whirlpools at creation. The instruction reveals tick spacing (fee tier), both mints, and the initial sqrt-price, which is enough to size and place a limit-order-like position immediately.

Whirlpool on Eclipse: same program, separate stream

Eclipse is an SVM L2. Whirlpool is deployed there at the identical address, whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc. The IDL matches Solana mainnet byte-for-byte, which means the same parsed-event decoder, the same SDK, and the same client code work without modification. That's rare. It's also the strongest argument for treating Whirlpool as a single product across two chains.

What differs is the gRPC endpoint and the live state. Eclipse has its own block production, its own validator set, and a different set of active Whirlpool addresses. We provide separate gRPC endpoints for the two networks; teams running cross-chain analytics or arbitrage subscribe to both and tag the originating chain downstream.

Frequently asked questions

whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc on Solana mainnet, and the same address on Eclipse mainnet. Whirlpool is the only major Solana DEX with cross-chain coverage on a single deployed program. Filter on this ID to capture every swap, position, and pool event across both networks.

Start streaming Orca Whirlpool in under 60 seconds

Pro plan from $49/mo includes 2 parsed streams. Pick Whirlpool plus any other Solana or Eclipse program in our explorer.

Ready to get started?

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

Talk to Sales