NoLimitNodes
PricingDocsBlogAbout
SupportContact
Log in
  1. Home/
  2. Products/
  3. Enhanced Streams/
  4. Jupiter Swaps
Enhanced Stream

The Jupiter API for real-time aggregator swap data on Solana

Jupiter doesn't run a pool. It routes through everyone else's. That's why a Jupiter swap stream is the closest thing Solana has to a unified DEX feed: one program, four route instructions, and roughly half the spot volume on the chain flowing through it on any given day. The catch is that Jupiter's swap is a meta-instruction. It packs a sequence of inner swaps across Raydium, Orca, Meteora, Phoenix, and a long tail of other AMMs into one transaction, then settles the user's net delta against a shared accounts table. Decoding that without an IDL is a slog. We've already done it. NoLimitNodes ships parsed Jupiter route events over gRPC, with the full DEX hop list, input/output mints, and the effective price already computed. Delivered on slot landing to your callback.

route + sharedAccountsRoute + exactOutRouteReal-time deliveryDecoded inner-swap hop listgRPC + WebSocketCross-DEX in one feedFree RPC tier
On-chain programs
  • Jupiter Aggregator v6JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4, The current production aggregator. Handles route, sharedAccountsRoute, exactOutRoute, and routeWithTokenLedger
  • Jupiter v6 alt deploymentJUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN, Secondary v6 program ID seen on a subset of integrator routes
  • Jupiter Limit Order v2j1o2qRpjcyUwEvwtcfhEQefh773ZgjxcVRry7LDqg5X, Limit order fills route through here. Fills land as a swap once the price condition triggers
  • Jupiter DCADCA265Vj8a9CEuX1eb1LWRnDT7uK6q1xMipnNyatn23M, Dollar-cost average orders. Each scheduled fill emits a route through Jupiter v6

The Jupiter events you can stream

every decoded route, plus Limit Order v2 fills and DCA legs

EventTypeDescriptionFrequency
routeinstructionStandard aggregator swap. Carries the full RoutePlanStep array, input/output mints, slippageBps, and platformFeeBps.Very high
sharedAccountsRouteinstructionShared-accounts variant used by integrators (Phantom, Solflare, Bull). Same payload, different account layout to save space.Very high
exactOutRouteinstructionExact-out swap. Specifies the output amount and lets Jupiter solve for the input. Common in payment flows and dust sweepers.Medium
routeWithTokenLedgerinstructionRoute variant that uses a token ledger account to track balances across composed instructions. Used by program-to-program callers.Medium
sharedAccountsExactOutRouteinstructionShared-accounts plus exact-out combined. Lower frequency, surfaces wallet-app payment intents.Low
SwapEvent (CPI log)eventAnchor CPI event emitted on every inner-DEX hop. Contains amm program ID, input mint, output mint, in amount, out amount.Very high
fillOrder (Limit Order v2)instructionLimit order fill. Triggers when the maker price hits a Jupiter-found route. Pairs with a v6 route in the same tx.Medium
DCA fillinstructionScheduled DCA leg. Each scheduled fill produces a v6 route plus a DCA program log with the order ID.High

Jupiter streaming performance

last reviewed 2026-04-28

Jupiter daily routes
4-6M / day
route + sharedAccountsRoute + exactOutRoute combined, all integrators
Verified 2026-04-28
Inner DEXes touched per route
1-7
Most routes hit 1-2 pools; complex split routes can chain seven
Verified 2026-04-28
Stream uptime SLO
99.95%
Pro and Ultra plans, monthly rolling

What a Jupiter route actually looks like on chain

A Jupiter swap is one transaction with one outer call into JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4. That outer call doesn't do the trade. It dispatches. The actual swaps are inner instructions: a CPI into Raydium AMM v4 here, an Orca Whirlpool tick crossing there, sometimes a Meteora DLMM bin step, sometimes a Phoenix orderbook fill. Each inner program runs its own swap math against its own pool state, and the outer call collects the deltas.

That's why a single Jupiter signature can move 7 different mints across 4 different DEXes and still settle as one user-visible trade. It's also why a naive parser sees a v6 route and reports “swap” without knowing which pool actually got hit. The interesting data lives one level deeper.

The four route variants are route, sharedAccountsRoute, exactOutRoute, and routeWithTokenLedger. Wallet integrators (Phantom, Solflare, Bull) lean on sharedAccountsRoute because it packs more into a single transaction. Payment flows use exactOutRoute when they need a precise output. Everyone else uses the plain route. All four end up emitting an Anchor SwapEvent log per inner hop, which is the cleanest single source of truth for what actually happened.

The route instruction shape, decoded

A v6 route instruction carries a small header and a RoutePlanStep[]. The header has the input amount, the quoted output amount, the slippageBps, and the platformFeeBps if an integrator stamped one on. The plan steps describe the hops, in order.

FieldTypeWhat it tells you
inAmountu64User's input, raw units
quotedOutAmountu64What the quote-api promised
slippageBpsu16Slippage tolerance the user accepted
platformFeeBpsu8Integrator skim, if any
RoutePlanStep[]vecPer-hop swap label, percent, input/output index

The plan-step entries are where the routing intelligence lives. Each step has a swap label (e.g. Raydium, Whirlpool, MeteoraDlmm, Phoenix), a percent of the input allocated to that hop, and an in/out token index that maps into the accounts list. A 100/0 split means single-hop. A 60/40 split is a parallel route across two AMMs. A 50/50 chained into another 50/50 is a four-leg, two-hop tree.

Reconstructing the actual fills means correlating each plan step to the inner CPI that ran. We do that on our side and emit one event per hop with the inner program ID, the pool, the in/out mints, the amount in, and the amount out. Sum the legs and you have the route's real effective price; subtract from quotedOutAmount and you have the realized slippage.

Why aggregator data matters more than DEX-by-DEX feeds

On a typical Solana day, Jupiter handles a meaningful chunk of all spot DEX volume. If you're building anything that needs a market-wide view (price discovery, MEV detection, slippage attribution, copy trading) the Jupiter feed gets you closest to a unified order flow with the least integration work.

Three reasons it's the right starting point:

Price discovery. Quoted vs executed price, sampled across thousands of routes per second, gives you a noise-resistant measure of where each token actually clears. Pool-level swap data tells you what one venue did; the aggregate tells you what the market did.

Slippage attribution. Every route has a quoted out, an actual out, and a list of hops. Subtract, divide, and you get a per-hop slippage number. That breaks down where execution quality is leaking, and whether it's the routing or the venue.

MEV signal. Sandwiches around Jupiter routes remain a thing. The pattern is recognizable: a v6 route sits between two same-pool swaps from another wallet, often inside the same slot. You can't see that without subscribing to both Jupiter and the underlying pools, which is why we recommend pairing this stream with the Raydium, Orca, and Meteora feeds when you care about MEV.

Cross-DEX routing patterns you'll see in the stream

Single-hop

One plan step, 100% allocation, into a single AMM. The most common pattern. Roughly two-thirds of routes take this shape on a normal day. If you're sampling Jupiter to estimate per-venue volume, this is your cleanest signal.

Parallel split

Same input mint, same output mint, two or more pools, split by percent. Jupiter does this when one pool can't absorb the full size without too much price impact. The classic 60/40 across Raydium AMM v4 and CPMM is the textbook case.

Multi-hop chain

A → B → C, where the intermediate token is usually USDC or SOL. Common for long-tail mints with no direct pair against the user's input. Each hop is a separate plan step with its own pool, and the intermediate balance lives in the user's ATA between steps.

Tree route

The interesting one. Jupiter splits across two pools, then re-converges through a third. Up to seven legs in extreme cases. Almost always large notionals where saving 5-10bps of slippage justifies the extra compute. If you're running execution analytics, these are the routes worth replaying.

What teams build with the Jupiter stream

The teams we see using this feed in production fall into four camps, with a fifth growing fast.

Copy traders. Filter on a wallet, get every Jupiter swap that wallet executed, mirror it. The stream gives you the full route, so you can replay the same hops if you want, or just take the input/output mints and find your own path. Latency matters here. We see copy bots fire follow-on bundles within ~30ms of the source signature confirming.

Execution analytics teams. Each route has a quoted out, a realized out, and a hop list. Bucket by integrator, by token pair, by route shape, and you have an ongoing view of who actually delivers good fills. Useful internally if you're a wallet picking integrators; useful externally if you're publishing benchmarks.

MEV researchers. Sandwich detection, JIT detection, backrun analysis. The Jupiter stream alone tells you the victim; paired with pool-level streams it tells you the attacker.

Volume dashboards and price oracles. Birdeye and DexScreener pull from streams that look very similar to this one. If you're building anything that needs a clean per-token spot tape, sourcing it from Jupiter routes is faster than rolling up every individual AMM.

Trading-loss attribution. The fastest-growing use case. Wallet apps and discretionary traders want to know how much of their realized loss was bad price vs bad timing. The stream gives you the price; pair it with mempool data and you have the timing.

Frequently asked questions

Two surfaces. The off-chain Jupiter API (quote-api.jup.ag) returns route quotes and serialized transactions for swaps you want to execute; that's a quote service, not a stream. The on-chain surface is the v6 aggregator program at JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4, which emits route, sharedAccountsRoute, exactOutRoute, and routeWithTokenLedger instructions for every executed swap. Subscribe to that program and you see every Jupiter trade on Solana We parse the inner-DEX hops so each event carries the full route, not just the outer call.
The off-chain quote API is rate-limited but free for moderate use. The on-chain stream is whatever your RPC provider charges. We bill flat, not per event: $49/month on Pro covers 2 streams, $199/month on Ultra covers 20. The free tier covers RPC and WebSocket access if you want to prototype with logsSubscribe before committing to gRPC.
JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 is the primary v6 deployment. There's a secondary deployment at JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN that some integrators use; production crawlers should subscribe to both. Limit Order v2 lives at j1o2qRpjcyUwEvwtcfhEQefh773ZgjxcVRry7LDqg5X and DCA at DCA265Vj8a9CEuX1eb1LWRnDT7uK6q1xMipnNyatn23M.
Look at the inner instructions. The outer Jupiter call is just the dispatch; the per-DEX legs are CPIs into Raydium AMM v4, Orca Whirlpool, Meteora DLMM, Phoenix, and the long tail. Match each inner program ID against the DEX you care about and you've reconstructed the route. Our parsed feed does this on our side, so the event you receive already lists hops in order with each leg's input mint, output mint, amount in, and amount out.
The quote API gives you a hypothetical route, priced now, with a serialized transaction you can sign. The stream gives you executed routes, after the fact, with the actual amounts that landed on chain. Quote tells you what should happen; stream tells you what did. Trading systems use the quote API to plan and the stream to verify and to learn from other traders' fills.
Yes. Filter the stream on a wallet via accountRequired and you get every Jupiter swap that wallet executed, decoded with input/output mints and amounts. For execution analytics, compute the wallet's effective price per route, compare it to the contemporaneous best quote, and you have a slippage attribution. Pair with raw pool-level swap streams from Raydium, Orca, and Meteora and you can see when Jupiter chose a worse route than the user could have done direct.
Yes. Limit Order v2 fills produce a v6 route in the same transaction once the maker price triggers; we surface both in the stream so you can correlate by signature. DCA orders emit one route per scheduled leg, plus the DCA program logs the order ID. If you only want spot swaps, filter to top-level v6 calls without the limit-order or DCA sibling instructions.
Helius webhooks are great for serverless ingestion but bill per event; an active memecoin day on Jupiter can spike the bill in a way that's hard to budget. QuickNode Streams uses a similar per-event meter. Bitquery's GraphQL is the right surface for historical analytics and joined queries. PumpPortal is Pump.fun-only and doesn't carry Jupiter route data. We ship parsed gRPC with flat pricing, full v6 + Limit Order + DCA coverage in one feed, and a 10x price guarantee against any like-for-like quote.

Related products

Raydium AMM v4, CLMM, CPMM Enhanced Stream

Most Jupiter routes touch Raydium. Subscribe alongside to see both the aggregated and the underlying pool-level fills.

Orca Whirlpool Enhanced Stream

Pair with Jupiter to attribute volume between aggregated and direct flow on Solana's second-largest CLMM.

Meteora DLMM Enhanced Stream

Bin-based DLMM events. Jupiter routes through DLMM heavily for stablecoin pairs.

Program streams catalog

Browse every decoded Solana program we expose, including Jupiter v6 and the DEXes it routes through.

Yellowstone gRPC nodes

The streaming layer behind every NoLimitNodes Jupiter subscription.

All Enhanced Streams

18 curated topics across DEXes, lifecycle, and system events. The catalog hub.

Start streaming Jupiter routes in under 60 seconds

Pro plan from $49/mo includes 2 parsed streams (pick Jupiter plus any of Raydium, Orca, Meteora, PumpSwap, and more). Ultra adds 20 streams and 30 hours of custom dev time.

See pricingTalk to sales

Ready to get started?

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

Talk to Sales
NoLimitNodes

Solana RPC infrastructure built for performance and scale.

RPC Access
  • HTTP RPC
  • WebSocket
  • gRPC
Infrastructure
  • Compute Platform
  • VPS
  • VDS
  • Bare Metal
  • Geyser Plugin Hosting
Enhanced Streams
  • PumpFun
  • PumpSwap
  • Raydium
  • Orca
  • Meteora
  • System Events
  • Browse All →
Program Streams
  • PumpFun
  • PumpSwap
  • Raydium CLMM
  • Orca Whirlpool
  • Meteora DLMM
  • Jupiter Swap
  • Jupiter Perps
  • Kamino Lending
  • Browse All 37 →
Trading
  • EZWallet
Analytics
  • Historical Datasets
  • Historical Raw Blocks
Company
  • About
Resources
  • Pricing
  • Custom Development
  • Documentation
  • Blog
  • Support
  • Contact Sales
Compare
  • Yellowstone gRPC vs LaserStream
  • Triton vs Helius
  • Raydium API vs Helius
  • PumpSwap API vs Bitquery
  • QuickNode Streams vs NLN
  • All comparisons →
Legal
  • Terms & Conditions
  • Privacy Policy
© 2026 CLR3 Inc., operating as NoLimitNodes. Registered in Ontario, Canada. All rights reserved.solana mainnet