This space is available Advertise with CryptoOverlook → 160 × 600
This space is available Advertise with CryptoOverlook → 160 × 600
This space is available Advertise with CryptoOverlook → 728 × 90

Risk & Psychology

What Is Slippage? Order Books, AMMs, and Setting a Tolerance

Why the price you expected isn't always the price you get: order book depth vs. AMM pool size, a worked DEX swap example, and how to manage slippage without inviting a sandwich attack.

What slippage actually is

Slippage is the difference between the price you expected a trade to execute at and the price it actually executed at. You see a quote of $3,000 for ETH, you submit a buy, and the fill comes back at $3,006: that $6 gap is slippage. It’s not a fee anyone charges you; it’s a structural consequence of how trades actually get matched against available liquidity, and it shows up differently depending on whether you’re trading on a centralized exchange’s order book or swapping through a decentralized exchange’s liquidity pool.

Why it happens

Two separate forces cause slippage, and they can compound each other:

Order size relative to available liquidity. A price you see quoted (the “best” price on screen) usually only has a limited amount of size available at that exact level. A market order large enough to exceed that size has to “walk the book,” filling the first portion at the best price and the rest at progressively worse prices, until the whole order is filled. This is covered briefly in Spot Trading Explained: a $500 market buy on a deep BTC/USD pair barely moves the average fill price, while the same $500 on a thin, low-volume pair can fill meaningfully above the displayed price, purely because there wasn’t enough size sitting at that level to absorb the whole order.

Market movement between submitting and filling. Even a modest-size order isn’t executed instantly; there’s a small window between you clicking confirm and the exchange matching it. In a fast-moving market, the price can genuinely move during that window, so your fill reflects the price at execution, not the price you saw a moment earlier when you clicked. This effect is usually small under normal conditions and becomes much larger during high volatility, a major news event, or a period of unusually thin trading.

Order book slippage vs. AMM slippage

On a centralized exchange, slippage comes entirely from walking through the order book’s visible depth, as described above: the more size sitting near the current price, the less a given order moves the average fill.

On a DEX using an AMM (automated market maker), there’s no order book at all; you’re trading directly against a liquidity pool, and the pool’s own size determines how much your trade moves the price, following the pool’s pricing formula rather than matching against other traders’ orders. This is covered in more mechanical detail in What DeFi and a DEX Actually Are, but the practical difference worth internalizing here is this: on a DEX, slippage tolerance is a setting you configure yourself before every swap, not just a number you observe after the fact.

A worked example makes the mechanism concrete. Say a pool holds 100 ETH and 300,000 USDC (implying an ETH price of $3,000), and you want to swap 10,000 USDC for ETH. Because a larger trade moves the pool’s own ratio of assets, the quote you’re shown before confirming might be something like 3.28 ETH rather than an even 3.333 ETH (10,000 ÷ 3,000): the pool is already pricing in the fact that your own trade will shift its balance as it executes. If you set a 1% slippage tolerance, you’re telling the DEX interface: only execute this swap if the actual result is within 1% of that quoted 3.28 ETH, meaning no less than roughly 3.25 ETH. If the price moves more than that between the moment you submit and the moment the transaction confirms on-chain (which can take anywhere from seconds to longer, depending on network congestion), the swap simply fails and reverts, rather than executing at a worse price than you authorized. That’s the entire purpose of the setting: a hard, self-imposed floor on how bad a fill you’re willing to accept.

Managing slippage in practice

  • Trade smaller size relative to available liquidity. Splitting a large order into several smaller ones, spaced apart, generally produces a better average fill than one large order walking through thin depth all at once, on either a centralized order book or a shallow AMM pool.
  • Use limit orders instead of market orders when slippage matters. A limit order fixes your price, trading away the certainty of an immediate fill for control over the price you’ll actually accept, the same tradeoff covered in Spot Trading Explained.
  • Set an appropriate slippage tolerance on DEX swaps, not too tight and not too loose. Too tight (say, 0.1% on a volatile token) and ordinary price movement during confirmation causes your transaction to fail repeatedly, wasting gas fees on failed attempts without ever completing the swap. Too loose (say, 5-10% by default, left unchanged out of habit) and you’re exposing yourself to a real, DEX-specific risk worth naming directly: a sandwich attack, where a bot detects your pending swap in the public mempool before it confirms, places its own buy order immediately ahead of yours (pushing the price up right before your trade executes), lets your swap fill at that worse price, then immediately sells back into the price your own trade just pushed up, pocketing the difference at your expense. A wide slippage tolerance is exactly what makes room for this to happen without your transaction reverting; it’s the gap a sandwich bot needs to operate inside of.
  • Check the pool’s depth before a large DEX swap, not just the quoted price. A pool with genuinely low liquidity for the specific pair you want can show acceptable price impact for a small test swap and a dramatically worse one for the full size you actually intend to trade.

Frequently asked questions

Is slippage the same thing as a trading fee? No. A fee is a defined charge the exchange or protocol takes, disclosed in advance. Slippage is the gap between an expected and actual execution price caused by liquidity depth and market movement; it isn’t collected by anyone and can, in rare cases, even work in your favor if the price moves in your direction during execution.

Why did my DEX swap fail instead of just filling at a worse price? Because your slippage tolerance acted as intended: the price moved beyond the bound you set before the transaction confirmed, so the swap reverted rather than executing outside the limit you authorized. This costs the gas fee for the failed attempt but protects you from an uncontrolled bad fill; raising your tolerance slightly (not dramatically) is the usual fix if this happens repeatedly on a fast-moving token.

Does a limit order eliminate slippage entirely? It eliminates price slippage on the fill itself, since a limit order only executes at your specified price or better, but it introduces a different tradeoff: it may not fill at all if the market never reaches your price, which is the cost of that price certainty.

How do I know if a DEX pool has enough liquidity for the size I want to trade? Most DEX interfaces show an estimated price impact before you confirm a swap; a very small quoted trade showing meaningful price impact is a sign the pool is shallow relative to your intended size, and worth splitting into smaller trades or routing through a deeper pool if one’s available.

Risk

Nothing on this page is financial advice, and it is not a complete or current statement of how every exchange or DEX handles order execution and slippage settings. A slippage tolerance is not a guarantee of a specific price, only a bound on how far the executed price can deviate from the quote, and market conditions can still produce a materially worse outcome than expected during extreme volatility or thin liquidity. Do your own research before trading significant size, especially on a DEX with unfamiliar liquidity depth.

This space is available Advertise with CryptoOverlook → 728 × 90