Split routing
Within a venue
A pair usually has pools at several fee tiers with different depth. The engine simulates slices across every live tier with QuoterV2 and assigns each increment where marginal output is highest, so one order can fill 70/30 across a 0.05% and a 0.3% pool when that beats either alone. The whole fill settles as one SwapRouter02 multicall with a single minimum-output check.
Across venues
SplitshotRouter is a thin aggregator over an allowlist of routers (Splitshot's own SwapRouter02 and the Uniswap-venue SwapRouter02). It executes per-venue legs atomically, accounts by balance deltas, and enforces one global minimum output for the whole order: either every leg lands and the total clears the floor, or the transaction reverts with no funds stranded. Cross-venue splits are E2E-proven on mainnet (75/25 fills across both venues in one transaction).
Current routing state
Today the public API routes single-venue (Uniswap pools). Multi-venue routing activates by configuration once Splitshot's own pools hold real liquidity: with priority to Splitshot liquidity, spillover to the other venue when it prices better.