If you’ve ever looked closely at a swap receipt, you may have noticed that your trade didn’t execute through a single pool at one price. Instead, it may have been split across two, three, or even more liquidity sources, with each part of the swap filling at a slightly different rate.
This is a normal part of modern swap execution. Routers often split trades when doing so can produce a better overall result than sending the entire swap through a single pool.
This article explains why that happens, what causes the different execution prices, and how to interpret the final price you see.
Liquidity sources
Liquidity for the same token pair is often spread across several places rather than concentrated in one pool.
That liquidity might come from:
Multiple pools on the same protocol, including pools with different fee tiers.
Different protocols with different pricing mechanisms, such as constant-product AMMs, concentrated-liquidity AMMs, stableswap pools, or order books.
Pools with different amounts of available liquidity.
RFQ market makers that provide direct quotes.
Because the available liquidity is distributed across these sources, sending the entire swap through one pool is not always the best option. A large trade can move the price significantly within that pool, resulting in more price impact and potentially less output. Splitting the trade allows the router to make use of liquidity from several sources instead.
Price impact
In an AMM pool, the price changes as a swap consumes the liquidity available at the current rate. The larger the trade is relative to the pool’s available liquidity, the greater the price impact will generally be. That price impact can increase non-linearly as the size of the trade grows. This means the pool offering the best rate for the first part of a swap may not offer the best rate for the entire amount. Sending everything through that pool could ultimately return less than dividing the trade across several sources. A router can account for this by testing different allocations of the swap amount and comparing their combined output against routes that rely on a single source.
Why are the execution prices different?
Once a swap is split, each part of the trade executes against its own liquidity source. Those sources do not necessarily offer the same price, so the execution rate can vary from one part of the transaction to another.
Several factors can cause those differences:
Liquidity depth: A pool with less available liquidity can experience greater price impact for the same trade size.
Pricing mechanism: Different AMM designs calculate swap prices in different ways.
Fees: Pools can charge different swap fees, including different fee tiers within the same protocol.
Multi-hop routes: Part of the swap may travel through an intermediate token, for example Token A → Token B → Token C. Each pool along that route adds its own price and fee.
RFQ: A route may also include a direct quote from a market maker, either instead of or alongside public on-chain liquidity.
Effective swap price
When the interface displays a single effective price for a split swap, it represents the combined result of every part of the transaction. In other words, it is the overall price produced after accounting for all of the routes, pools, fees, and execution rates involved in the swap. Because each portion of the trade may execute at a different rate, that final effective price does not necessarily match the price shown by any individual liquidity pool or exchange.
