Jupiter volume bot routing: when the best price is the worst deal
Jupiter does one thing extremely well: it finds the best available price by searching across every venue and splitting your trade wherever that helps. For a trader moving size, that is close to strictly good. For a volume campaign it introduces two problems that never appear in a quote, and both of them cost money. The first is that longer routes fail more often. The second is that a split route spreads your activity across several pools, which is the opposite of what a campaign is usually trying to achieve.
What Jupiter actually does to your swap
A simple route is one hop: your token to SOL in a single pool. A multi-hop route passes through an intermediate asset, so token to USDC to SOL, using two pools. A split route divides the trade across several pools in parallel to reduce price impact on each. Jupiter will use any of these, and it picks purely on quoted output.
That optimisation target is the root of the mismatch. Jupiter is optimising the number that appears in the quote. It is not optimising the probability that the transaction lands, and it is not optimising where the resulting volume shows up. For a one-off trade those two things barely matter. For a campaign that will send thousands of transactions, they matter more than the quote does.
Why longer routes fail more often
The failure probabilities compound rather than average. If each hop has a modest chance of moving against you, a three-hop route carries close to three times that chance, and the whole transaction is discarded if any leg fails. You do not get a partial fill, and you still pay the fee.
Longer routes also consume more compute. A transaction that touches several programs uses far more compute units than a single swap, which means a higher priority fee to get scheduled and a real risk of hitting the compute limit outright on complex routes. Both show up as a higher median fee before a single failure is counted.
In the current window Jupiter v6 showed a median fee of 8,462 lamports and a 66.7% failure rate across 39 sampled transactions, which works out to roughly 25,411 lamports per swap that lands. That median fee sits about 1,807 lamports above a direct swap on Pump.fun AMM in the same window, before failure rates are taken into account at all.
None of this makes Jupiter badly built. It is doing exactly what it promises. The point is that the promise is about price, and a campaign is buying something else.
Jupiter measured against the venues it routes through
| Program | Sampled tx | Failure rate | Median fee | Cost per landed swap |
|---|---|---|---|---|
| Jupiter aggregator v6 low sample | 39 | 66.7% | 8,462 | 25,411 |
| Raydium CLMM low sample | 49 | 65.3% | 10,570 | 30,461 |
| Meteora DLMM | 109 | 69.7% | 8,450 | 27,888 |
| Orca Whirlpools low sample | 18 | 77.8% | 5,225 | 23,536 |
| Pump.fun AMM (post-graduation) | 173 | 32.4% | 6,655 | 9,845 |
The pattern to look for is not whether Jupiter is highest or lowest on any single column, but the gap between its cost per landed swap and that of the venue it would have routed you into. That gap is the real price of aggregation, and the quoted price improvement has to exceed it for the routing to have been worth taking.
The cross-venue picture is on which Solana DEX is cheapest for a volume bot, and the direct head-to-head arithmetic, including where the break-even actually sits, is in Jupiter versus direct pool swaps.
The split routing problem nobody mentions
This is the consideration most specific to volume campaigns and the one most often missed, because it is invisible in the quote. The quote shows a better output amount. It does not show that the trade which produced that amount landed as three smaller trades in three different places.
Whether that matters depends on what you are trying to affect. If the objective is a chart on a particular pair, splitting works directly against it. If the objective is broad token-level activity across everything a data aggregator reports, splitting is neutral or occasionally helpful. Most campaigns are the first kind and are configured as though they were the second.
The related question of what a chart actually reflects, transaction count against notional size, is covered in makers versus volume, and how third-party trackers pick up activity is in how DEXScreener trending works.
When Jupiter routing is the right call
- Large single trades. When the trade is big enough that price impact on a single pool would be severe, splitting across venues is worth the added failure risk, because the impact saved is larger than the failure cost.
- No usable direct pool. If the only meaningful liquidity for your pair is reachable through an intermediate asset, a multi-hop route is not a preference, it is the only way to trade at all.
- Genuinely fragmented liquidity. Some tokens have real depth spread across several venues with none dominant. Aggregation is designed for exactly that situation.
Against that, the campaign case for direct routing is straightforward. Small trades have negligible price impact, so the price advantage Jupiter can offer on them is tiny. Meanwhile the failure rate difference is not tiny, and neither is the effect of splitting activity you wanted concentrated. When your trades are small, direct routing usually wins on both counts at once.
Settings that matter if you do route through Jupiter
- Limit route complexity. If you can restrict the router to direct or single-hop routes, do. The price given up is usually small and the reliability gained is not.
- Keep the quote-to-submit gap short. Every second between quoting and broadcasting is another second for any pool on the route to move. Build, sign and send in one pass.
- Re-quote on failure, do not resubmit. The signed minimum output cannot succeed once price has moved past it. Resubmitting the same transaction reproduces the failure and pays the fee again.
- Watch compute limits. Complex routes can exhaust the compute budget outright. If failures cluster on the most complex routes rather than being spread evenly, that is the cause rather than slippage.
Our own routing resolves the venue from where a token actually has depth rather than from whichever path quotes best, which is a different objective and produces different choices. Why we make that trade, and what it costs when we are wrong, is set out on the Solana volume bot routing page. To put numbers against your own token first, the calculator converts a target volume into cost at current measured rates, and a campaign is configured in the dashboard.