The quick version. The price on your screen is the best resting offer for somebody else’s size, not a quote for yours. Slippage is the difference between that price and the average price you actually paid, and it comes from three things: how much liquidity sits near the quote, how big your order is against it, and how much the market moved while your trade was confirming. On an automated market maker it works differently again, and the tolerance you set has consequences.
The price you saw was never a promise
A quoted price is a snapshot of one thing: the best order currently waiting on the other side of the market. It is real, but it applies only to the quantity resting at that exact level, and that quantity is often small.
Everything behind it is priced worse. So the moment your order is larger than what sits at the top, part of it fills further down and your average price drifts. Nothing has gone wrong and nobody has cheated you. You have simply bought more than was on offer at the front of the queue.
This is an execution question rather than a market-level one. For the broader picture of what market cap, turnover and liquidity mean as metrics, see market cap, volume and liquidity explained. What follows is about your fill specifically.
Depth, size and price impact
Liquidity in practical terms means how much can be traded without shifting the price much. Depth is the measurable version of it: the size waiting at each level of the book.
Price impact is what happens when your order consumes that depth. A small order in a deep market barely registers. The same order in a thin market climbs several levels, and the average price you achieve sits noticeably away from where you started. It is not a fee and it is not fixed. It is a function of your size against the depth available.
Two things make this worse than people expect. Depth is usually uneven between the two sides, and it is not constant over time. Liquidity thins during volatile stretches, at quiet hours and on smaller venues, so the comfortable book you saw yesterday may not be the one you trade into today. Reading that is the subject of how to read an order book.
Spread, fees and slippage are three different costs
They are worth separating, because only one of the three is disclosed up front. The spread is the gap between the best bid and best ask, and you concede it whenever you trade immediately rather than waiting. The fee is what the venue charges, published in advance and usually different for orders that add liquidity versus those that remove it.
Slippage is neither. It is the gap between the price you expected and the average price you achieved, it appears on no schedule anywhere, and on illiquid assets it can dwarf the fee you were worrying about.
Time: the market moves while you are confirming
There is also a plain latency component. Between the moment a price is displayed and the moment your order reaches the engine, other people are trading, so in fast conditions the book you aimed at is not the book you hit.
On-chain the delay is longer and far more visible. A swap waits in the pending queue until it is included in a block, and the pool it will trade against keeps changing meanwhile. That waiting period is why on-chain venues need an explicit tolerance setting at all.
Automated market makers work differently
An automated market maker has no order book. It holds reserves of two assets and prices trades from a formula, most commonly one that keeps the product of the two reserves constant. Your trade adds to one reserve and removes from the other, moving the price along a curve.
So price impact is deterministic. For a given pool size, a given trade size always moves the price by the same amount, and larger trades against smaller pools move it a great deal. Deep pools behave like deep books; shallow ones do not.
Then there is the confirmation delay. Because your transaction sits pending in public view, other transactions can be placed around it. A trade executed just before yours worsens your price, and one executed just after captures the difference. That pattern is usually called sandwiching, and it works precisely because your intent and your acceptable worst price are both visible while you wait.
Which is where slippage tolerance comes in. It is the maximum adverse move you will accept before the transaction reverts rather than executing. Too tight and legitimate trades fail in ordinary volatility, costing you the network fee. Too loose and you have publicly announced how much you are willing to lose.
Safety: A high slippage tolerance is an instruction, not a suggestion. Raising it until a stubborn swap finally goes through tells anyone watching the pending queue exactly how much room they have to work with. A pool that only fills at a wide tolerance is telling you something about the pool, not about your settings.
Practical habits that reduce the damage
None of this requires sophistication. It requires checking a few things before rather than after.
- Check depth against your size, not in the abstract. The question is how far your specific order reaches, not whether the book looks busy.
- Consider splitting large orders. Several smaller fills give the book time to replenish, though each carries its own fee and, on-chain, its own network cost.
- Read the estimated price impact before confirming. Most swap interfaces show it, and an unexpectedly large figure means the pool is too shallow for what you are attempting.
- Set tolerance deliberately. Treat a swap that only succeeds at a wide tolerance as information about the liquidity, and remember a failed transaction still costs a network fee.
Your choice of order type matters too, since a limit order cannot fill worse than its stated price while a market order accepts whatever the book gives. That trade-off is unpacked in order types explained.
Key takeaways
- The quoted price applies to the size resting at that level. Larger orders fill across worse levels.
- Slippage is separate from spread and fees, appears on no schedule, and can be the largest of the three on illiquid assets.
- Liquidity is not constant. It thins in volatile conditions and on smaller venues, exactly when you most need it.
- On an automated market maker, price impact follows the pool’s formula, so a large trade against a small pool moves the price sharply.
- Slippage tolerance publicly states the worst price you will accept. Too tight wastes fees on failures; too loose invites sandwiching.
Frequently asked questions
Is slippage always a loss?
Not necessarily. Slippage simply means the fill differed from the expected price, and it can occasionally land in your favour if the market moved your way between submission and execution. In practice adverse slippage is more common, particularly for market orders in thin books, because your own order is part of what pushes the price against you.
What is the difference between price impact and slippage?
Price impact is the movement your own order causes by consuming available liquidity, and it can be estimated in advance from depth or from a pool’s formula. Slippage is the total difference between expected and realised price, which includes your impact plus whatever the rest of the market did while your order was in flight.
Why did my swap fail and still cost me a fee?
Because the transaction was included in a block but reverted when the price had moved beyond your tolerance. The network charges for the computation regardless of the outcome, so a reverted swap still costs gas. Very tight tolerances make this more likely in volatile periods, which is the trade-off against the protection the setting gives you.
Does splitting an order always get a better price?
Not automatically. Splitting helps when the book or pool replenishes between fills, which is common in reasonably active markets. Against that, each fill carries its own fee, on-chain each carries a network cost, and spreading execution over time exposes you to the price moving while you work through it.
Educational content, not financial advice. Crypto is volatile and high-risk; never share your seed phrase or private keys with anyone. Always do your own research.
Last updated Jul 25, 2026
