Slippage happens because the price shown is the price of the next available unit, not of your whole order. A market order consumes resting liquidity from the best price outward, so the larger the order relative to the book, the worse the average fill. On a decentralised exchange the same effect comes from the pool's pricing curve rather than a book, but the result is identical.
It is controlled rather than avoided. A limit order caps the price you will accept at the cost of possibly not filling; a slippage tolerance setting on a DEX does the same by reverting the transaction if the price moves past your threshold. Splitting a large order into smaller pieces over time is the other standard response.
Why did my trade fill at a worse price than shown?
Either the order was large enough to consume several price levels, or the price moved between the moment you saw it and the moment the order reached the venue. Both are slippage.
Last updated October 17, 2026