What is split routing on a DEX?

2026-07-31 · 5 min read · Splitshot Team

Split routing means filling one order across several liquidity pools at once instead of pushing the whole trade through a single pool. It exists because on-chain liquidity is fragmented by design, and because price impact inside any one pool grows with the size of your trade. This post explains the mechanics generically first, then shows how Splitshot applies them on Robinhood Chain.

One pair, many pools

On a v3-style AMM, the same token pair usually trades in several pools at once, separated by fee tier. The common tiers are 0.01%, 0.05%, 0.3% and 1%. Liquidity providers pick a tier when they deposit: stable pairs cluster in the cheapest tiers, volatile pairs in the middle, new or thin tokens at the top, where the higher fee compensates providers for the extra risk.

The result is that "the ETH/USD pool" is rarely one thing. It is three or four pools with different depths, different fees, and slightly different prices at any given moment. A router that only ever looks at one of them is leaving the rest of the map unread.

Why one pool is rarely the whole answer

Inside a single pool, every unit you sell pushes the price against you. The first slice of your order trades near the quoted spot price; the last slice trades at whatever the pool's price has become after absorbing everything before it. This is price impact, and it is nonlinear: doubling your trade size more than doubles the impact cost.

So a deep pool with a low fee is the right venue for the start of a large order, but not necessarily for the end of it. Once your own trade has moved that pool's price far enough, a shallower pool at a higher fee tier can offer a better deal on the next slice, because its price has not moved at all yet.

The marginal-output idea

The clean way to think about allocation is one slice at a time. Imagine feeding your order to the market in small pieces and asking, before each piece: which pool pays the most for this slice right now?

At the start, the answer is usually the deepest, cheapest pool. As that pool absorbs slices, its marginal price deteriorates. At some point the untouched higher-fee pool wins the comparison, even after its bigger fee, so slices start flowing there too. You keep going until the order is fully allocated, and at the finish line the pools you used are all paying roughly the same at the margin. That equalization is the signature of a good split: if one pool still paid clearly more for the last slice, more of the order should have gone there.

A small worked example

The numbers here are illustrative, chosen to show the shape rather than quote a market. Say you are selling 40 ETH for a dollar stablecoin, and the pair has two funded pools:

Neither extreme is the answer. In the deep pool, the first ETH might buy about 1,895 while the fortieth buys closer to 1,870, because your own order is moving the price the whole way down. Meanwhile the 0.3% pool's opening price is untouched. Somewhere around the point where the deep pool's marginal price, net of fees, drops below the small pool's, the split boundary belongs: perhaps 28 ETH to the 0.05% pool and 12 ETH to the 0.3% pool, returning 75,690 in total. That is 290 more than the best single-pool route. A fraction of a percent, but it is pure routing gain; nobody took extra risk to earn it.

One transaction, one floor

A naive way to split would be to send two separate swaps. That creates two slippage settings, two chances to be partially filled, and a window where one leg lands and the other fails. Proper split routing settles every leg inside a single transaction with a single minimum-received floor on the total. If the combined output would come in under that floor, the entire transaction reverts and you keep your input. You never end up half-filled across venues, and you never have to reason about per-pool slippage.

The single floor matters more than it first appears. With per-leg floors, one unlucky leg can revert while the others fill, leaving you with a position you never asked for. With one floor on the sum, the trade is atomic: either the total meets your minimum or nothing happens at all.

When splitting helps most

What matters is your size relative to pool depth, not your size in absolute terms:

A useful mental shortcut: if your trade would move one pool's price by more than the next tier's fee, a split is probably worth checking.

How Splitshot does it

Splitshot, the DEX we build for Robinhood Chain, runs exactly this playbook on every quote. It simulates output across the live fee tiers for your pair, splits the order when the simulation says splitting returns more, and settles the whole route as one SwapRouter02 multicall with a single minimum-output floor. Slippage is sized automatically from the trade's own measured price impact, clamped between 0.10% and 5%, so the floor reflects your actual trade rather than a one-size-fits-all default.

None of this needs to be taken on faith: the quote screen at splitshot.finance shows the split before you sign, and the receipt on Blockscout shows each leg after. If you want to compare, quote the same trade at different sizes and watch when the router starts splitting. The swap walkthrough covers the rest of the flow, and pool-level data for any pair lives on the price pages.

Ready to trade on Robinhood Chain?

Open the swap