Independent DeFi security desk · Status: operationalMethodology & corrections · Submit an incident
DeFi Safety · Fact checked

Uniswap Beginner Guide: Swaps, Slippage, Fees and Risks

A beginner walkthrough of a Uniswap swap: fees, slippage, price impact, and the failure modes that cost beginners the most.

This article may contain affiliate links. Commercial relationships are disclosed in the affiliate policy.

DeFi Safety — illustration keyed to this article's identifier. Source documents are listed under Sources and are not reproduced here.

A Uniswap swap looks like two fields and a button, but the numbers behind it decide whether you pay a fair price or quietly donate the difference to the pool. The cost of a beginner swap comes down to four separate things: the pool’s trading fee, the price impact of your own trade size, the slippage tolerance you allow the transaction to accept, and the token approval you grant beforehand. Beginners conflate them into a single vague idea of “the fee,” then react to the wrong number when a trade goes bad. Separating them is the whole skill.

The four costs, kept apart

Pool fee. Every Uniswap pool charges a fixed percentage that goes to liquidity providers. Classic pools charge 0.30%. Concentrated liquidity pools charge tiered rates that vary by volatility: lower tiers for stable pairs, higher tiers for volatile pairs. This fee is a property of the pool you are trading against, not a setting you choose, and no interface slider will change it. If you are comparing two routes, the difference in pool fee is one of the few genuinely fixed numbers in the comparison.

Price impact. When you trade against a pool, you move the price against yourself by the size of your trade. Trading a small amount through a deep pool barely moves the price. Trading a large amount through a shallow pool moves it a lot, and the average price you receive across the whole trade ends up worse than the price you saw before confirming. Price impact depends on your trade size relative to pool depth, which is why the quoted number changes every time the pool moves — it is not a fixed fee and will not be listed as one. Size is the lever here: smaller trades through deeper pools simply cost less.

Slippage tolerance. This is a limit you set, not a cost you pay. It tells the router the worst price movement you will still accept. If the transaction executes within your tolerance, it settles at whatever price the pool reached. If the market moves beyond your tolerance before the transaction lands, the transaction reverts and you pay nothing but the gas. Setting it too tight causes failed transactions during normal volatility. Setting it too wide lets a transaction settle meaningfully worse than the quoted price. The useful habit is to leave the default alone on liquid pairs and only widen it deliberately when you understand why the trade is taking longer to land.

Token approval. Before the first trade you grant an allowance so the router can move the token. This is a permission, not a payment, and it survives the transaction. Revoking an unused approval costs gas but removes standing authority, so a compromised router has less to work with afterwards.

Reading the quote screen

Most interfaces show the rate you expect, the minimum received, the price impact and the estimated network fee on the same screen. These four numbers answer different questions and should be read separately rather than summed into one impression.

The rate is a snapshot of the pool at the moment of quoting. The minimum received is your slippage tolerance applied to it, and it is the contractual floor: the transaction cannot settle below it. The price impact tells you whether the trade is large relative to the pool. The network fee is paid regardless of outcome, which is why a reverted swap is not free.

If the minimum received is far below the quoted rate, your tolerance is wide for that pair. On a stable pair that width is usually unnecessary. On a thin or fast-moving pair, some width is realistic. Deciding which situation you are in requires knowing the pool you are trading, not guessing at the interface.

Where beginners lose money

The largest loss is not a bad trade. It is a token that impersonates the real one. A copy of a popular token can share its name and symbol while having a different contract address, and it can even appear first in a search result. Confirm the contract address against the project’s own documentation or a block explorer before trading anything you cannot already identify. A token whose address you took from the same page that asked for your approval has not been checked at all.

The second loss is a manipulated quote on a low-liquidity pool. In a shallow pool, a single large trade can move the price far enough that a subsequent trade takes the new, worse price. The way to avoid it is to prefer deeper pools, which means reading liquidity before amount. A token with very low liquidity that has moved several percent in an hour is exactly the setup where this happens.

The third is leaving the approval in place indefinitely. Nothing about a swap requires standing permission after it completes.

A repeatable pre-swap check

  1. Confirm the contract address of the input and output tokens from a source reached independently of the token listing page.
  2. Look at pool liquidity and the volume behind the pair, not just the displayed price.
  3. Note the quoted rate, the minimum received and the price impact before signing, so the post-transaction screen can be compared against it.
  4. Leave slippage at the default unless you have a specific reason.
  5. Approve the exact amount when the interface offers it, rather than an unlimited allowance.
  6. After the swap, compare the executed rate against the minimum received. If the transaction succeeded below your quoted rate but above the floor, that is normal market movement. If it reverted, the tolerance was too tight for current conditions.

None of these steps predict a price. They are the difference between a trade that settled at a defensible price and one where the loss came from a token, a pool or a permission that was never checked.

Sources