Guide

DEX slippage and price impact explained

You click “Swap” on a decentralized exchange expecting the quoted price. The transaction confirms — and you received fewer tokens than the preview showed. That gap is slippage, and on automated market makers (AMMs) it is often inseparable from price impact: your own trade size moves the pool’s price curve against you. Unlike a centralized exchange order book where depth is visible in discrete levels, AMM pools price every marginal token along a bonding curve. A $500 swap in a deep ETH/USDC pool barely moves the needle; a $500,000 swap in a thin memecoin pool can cost double-digit percent. This guide explains how slippage works on liquidity pools, how slippage tolerance settings protect (and sometimes harm) you, how MEV searchers exploit loose tolerances, and practical tactics to get fair execution on Ethereum, Solana, and other chains.

Slippage, price impact, and spread — three different costs

Traders and UIs often conflate these terms. Separating them makes debugging bad fills much easier.

  • Price impact — the execution cost caused by your trade moving the pool’s internal price along its curve. It is deterministic given pool reserves and your input size at the moment of execution. Larger trades relative to pool depth mean higher impact.
  • Slippage — the difference between the price you expected when you signed the transaction and the price you actually received. Slippage includes price impact plus anything that changed between quote and confirmation: other traders’ swaps, block delay, oracle updates, or a sandwich attack.
  • Spread — on order-book venues, the gap between best bid and best ask. Pure AMM pools do not have a spread in the CEX sense, but aggregators routing across multiple pools may report an effective spread when comparing routes.

When a wallet shows “0.5% slippage tolerance,” it is not predicting impact — it is setting the maximum adverse move you will accept before the transaction reverts. If price impact alone is 2% and your tolerance is 0.5%, the swap fails. If impact is 0.3% but a searcher sandwiches you for another 1.5%, a 2% tolerance lets the attack through.

How AMM curves create price impact

Most DEX pools use a constant-product invariant: x × y = k, where x and y are token reserves. Uniswap v2, Raydium legacy pools, and countless forks share this shape. When you buy token Y with token X, you add X and remove Y; the product k must stay constant (ignoring fees).

The marginal price — how much Y you get for the next infinitesimal unit of X — worsens with every unit you buy. A small trade stays near the spot price shown on dashboards. A large trade walks up the entire curve. The percentage loss versus spot is approximately proportional to trade size divided by pool depth, which is why thin pools are dangerous for size.

Concentrated liquidity (Uniswap v3, Orca Whirlpools, Raydium CLMM) changes the shape but not the principle. Liquidity sits in price ranges; swaps consume liquidity within the active tick range first. Impact can be lower inside a dense range and spike violently when price exits the range — the pool effectively runs out of depth on one side. Always check whether quoted depth covers your full trade size, not just the current tick.

Pool fees (0.01%–1% depending on tier) are separate from impact. Fees go to liquidity providers and reduce impermanent loss drag for LPs; impact is the price movement cost paid by the taker.

Reading the numbers on a swap screen

Modern aggregators (Jupiter on Solana, 1inch and Matcha on Ethereum, CowSwap, Uniswap’s auto router) simulate routes before you sign. Learn what each field means:

  • Expected output — tokens you should receive if the pool state at simulation time holds through execution.
  • Minimum received — floor after applying your slippage tolerance. If actual output falls below this, the transaction reverts and you pay gas only.
  • Price impact % — UI estimate of curve movement from your trade alone. Treat this as a lower bound on execution cost in competitive mempools.
  • Route — single pool vs multi-hop (e.g. USDC → SOL → BONK). Each hop adds impact and fee; sometimes a longer route is cheaper if intermediate pools are deeper.

On Solana, simulation is fast and cheap — refresh the quote if more than a few seconds pass during volatile markets. On Ethereum, pending transactions may wait blocks; state can shift materially. Private-flow routers (Flashbots Protect, MEV Blocker, some wallet defaults) reduce but do not eliminate drift between quote and execution.

Slippage tolerance — how to set it without getting sandwiched

Slippage tolerance is a safety rail, not a target. Common defaults (0.5% on stables, 1% on majors, 3%+ on illiquid tokens) exist because reverts waste gas and UX — but high tolerances are invitations to sandwich bots.

A sandwich attack works like this: a searcher sees your pending swap in the public mempool, buys the token ahead of you (pushing price up), lets your trade execute at the worse price within your tolerance, then sells into your buy for profit. Your tolerance is their budget. A 5% tolerance on a volatile memecoin is often pure extraction.

Practical tolerance rules

  • Set tolerance slightly above simulated price impact — e.g. impact 0.4% → tolerance 0.6–0.8%, not 3%.
  • Use private transaction submission on Ethereum when swapping size on public pools.
  • On Solana, prefer Jito bundles or wallets that route through low-leakage paths for large swaps; avoid broadcasting huge trades with wide tolerances during congestion.
  • For stablecoin pairs (USDC/USDT), sub-0.1% impact is normal; tolerance above 0.2% rarely makes sense unless the pool is broken or depegging.
  • Split large orders across time or routes to keep per-tx impact under 1%.

DEX vs CEX execution — when each wins

Centralized exchanges match against an order book. Slippage on a liquid pair like BTC/USDT is often negligible up to seven figures because market makers quote tight depth. You trade custody and counterparty risk for execution quality.

DEXs offer self-custody and permissionless listing — any token with a pool is swappable — but depth is fragmented across pools and chains. A token with $2M daily volume might have only $50K in the specific pool your aggregator picks. DeFi shines for long-tail assets and composable workflows; CEXs shine for size on majors. Hybrid workflows are common: acquire stables on a CEX, bridge, then DEX swap into niche tokens with tight tolerance and split orders.

Chain-specific considerations

Ethereum and L2s

Mainnet mempools are adversarial. Large swaps should use private RPCs, batch auctions (CoW Protocol), or limit-order protocols (Uniswap v3 limit orders, 1inch Limit). L2s (Arbitrum, Base, Optimism) have thinner liquidity on some pairs but cheaper reverts — you can afford tighter tolerances and retry. Bridge latency means the pool state on L2 may diverge from mainnet spot during volatility.

Solana

Sub-second blocks and low fees encourage high-frequency arbitrage — pools rebalance quickly, which keeps spot prices aligned across venues but also means quotes stale fast. Jupiter’s routing across Raydium, Orca, Meteora, and others is essential for best execution. Watch for low-liquidity pools on new launchpads; bonding-curve launches can show 20%+ impact on modest size. Use stablecoin exit routes when testing unfamiliar tokens.

Tactics to minimize slippage

  • Check liquidity depth — TVL is misleading; inspect reserves for your specific pair and whether concentrated liquidity covers your size.
  • Use aggregators — they split across pools automatically; manual single-pool swaps are rarely optimal.
  • Trade during calm periods — volatility widens spreads and attracts MEV; avoid swapping illiquid tokens during cascading liquidations.
  • Limit orders and TWAP — for size, time-weighted execution beats one market order; CoW, 1inch, and some Solana venues offer scheduled slices.
  • Watch for fee tiers — v3 pools at 0.01% may have less depth than 0.3% tiers; cheapest fee is not always cheapest total cost.
  • Simulate before signing — if impact exceeds your edge (arb, liquidation bonus), abort. Negative expected value trades are not saved by hope.

Common mistakes

  • Max slippage on every swap — wallets that default to 5% train users to overpay; change defaults per asset class.
  • Ignoring price impact warning — red UI warnings exist because impact above ~3% is rarely accidental; verify you are in the correct pool and token contract.
  • Chasing illiquid launches — first-block buys on thin curves are speculation, not execution optimization; size accordingly.
  • Confusing slippage with gas — high gas on Ethereum does not cause worse token output; it is a separate cost. Failed reverts still burn gas on most chains.
  • Single-hop stubbornness — refusing multi-hop routes because they “look complicated” often costs more than the extra hop fee saves.

Retail trader checklist

  • Simulate swap; note price impact % before setting tolerance.
  • Set tolerance to impact + small buffer (0.1–0.3%), not wallet default max.
  • Confirm token mint/contract address — slippage scams include fake tokens with similar names.
  • For trades above 1% of pool depth, split orders or use TWAP/limit tools.
  • On Ethereum mainnet, use private RPC or batch auction for non-trivial size.
  • Compare aggregator quote to spot on a CEX or oracle; deviation above 2% warrants investigation.
  • After fill, compare actual output to pre-sign minimum — log persistent gaps as possible MEV or routing bugs.
  • Keep stables as exit liquidity; do not trap size in illiquid pairs without a planned unwind path.

Key takeaways

  • Price impact is the curve cost of your trade size; slippage is expected vs actual fill including mempool dynamics.
  • Constant-product and concentrated-liquidity pools worsen marginal price as you trade larger relative to depth.
  • Slippage tolerance caps worst-case fill but wide tolerances fund sandwich attacks.
  • Aggregators, route splitting, private flow, and limit/TWAP tools are the main defenses.
  • Match execution venue to goal: CEX depth for size on majors, DEX for custody and long-tail assets.

Related reading