The liquidity provider's bargain
Picture this. ETH is trading at $2,000. You deposit 1 ETH and 2,000 USDC into a Uniswap ETH/USDC liquidity pool, becoming a liquidity provider (LP). Your reward: every trader who swaps through the pool pays a small trading fee, and a slice of it is yours. A month later you come back. ETH has doubled to $4,000. You feel rich — and in dollar terms you are. But when you withdraw, you notice two strange things: you have less than 1 ETH, and your position is worth less than if you had simply held the original 1 ETH and 2,000 USDC in your wallet. That gap is impermanent loss, and it is the central fact every LP must understand.
An automated market maker (AMM) like Uniswap v2 holds your two tokens as reserves and prices every swap with the constant-product formula x · y = k that you met in the previous guide: `x` is the ETH reserve, `y` is the USDC reserve, and the product `k` must stay constant as people trade. Impermanent loss is not a bug, a fee, or a hack. It falls directly out of that one equation the moment the price of ETH moves away from where you deposited.
Arbitrage quietly rebalances your position
Here is the mechanism. The pool has no idea what ETH costs on Coinbase. Its internal price is simply the ratio of reserves, `y / x` (USDC per ETH). When ETH rises on the open market but the pool still prices it cheaply, the pool becomes a discount store: arbitrageurs buy ETH out of it until the internal price `y/x` is dragged up to match the market. Every one of those trades removes ETH and adds USDC. Nobody asks your permission — the invariant does it automatically, and the bigger the price move, the bigger the trade (price impact is the cost the arbitrageur pays the pool, which is exactly the fees you collect).
We can pin down exactly where the reserves land. Hold `k = x·y` fixed and demand that the new internal price equals the market price `P`, i.e. `y/x = P`. Solving the two equations gives a clean result: `x = √(k / P)` and `y = √(k · P)`. So as `P` climbs, `x` (your ETH) shrinks and `y` (your USDC) grows. An AMM LP is, by construction, always selling into a rally and buying into a crash — the opposite of what a momentum trader would want.
Worked example: ETH doubles
Let's put real numbers through it. To keep the arithmetic clean, assume you own the whole pool (your share cancels out anyway). You deposit 1 ETH + 2,000 USDC at $2,000, so the reserves start at `x₀ = 1`, `y₀ = 2000`, and `k = 2000`. ETH then doubles to $4,000.
# Impermanent loss for a constant-product (x*y = k) pool # r = new_price / old_price (price ratio of the volatile asset) P0, P1 = 2000, 4000 # ETH price doubles x0, y0 = 1.0, 2000.0 # initial reserves (LP owns the whole pool) k = x0 * y0 # = 2000 # Arbitrage rebalances the pool until its price y/x equals P1: x1 = sqrt(k / P1) # = 0.70711 ETH (you now hold LESS ETH) y1 = sqrt(k * P1) # = 2828.43 USDC (and MORE USDC) V_pool = x1 * P1 + y1 # = 5656.85 USDC <- value if you LP'd V_hold = x0 * P1 + y0 # = 6000.00 USDC <- value if you just held IL = V_pool / V_hold - 1 # = -0.0572 -> -5.72%
Read the result carefully, because the honest framing matters. Your deposit was worth $4,000 (1×$2,000 + 2,000). As an LP you now have $5,656.85 — you are *up 41%*. That is a real gain; nobody robbed you. But a couch-potato who just held the same tokens would have $6,000 — *up 50%*. The $343 you left on the table, or −5.72% of the holding value, is impermanent loss. It is the price of having let arbitrageurs rebalance your bag on the way up.
The formula and the loss curve
The −5.72% wasn't a coincidence of these particular numbers — it depends only on the price ratio `r = P₁ / P₀`. Here is the derivation, which is short and worth doing once:
- Pool value after the move: `V_pool = x₁·P₁ + y₁ = √(k/P₁)·P₁ + √(k·P₁) = 2·√(k·P₁)`.
- Substitute `k = x₀·y₀` and `P₁ = r·P₀ = r·(y₀/x₀)`, so `k·P₁ = r·y₀²`, giving `V_pool = 2·y₀·√r`.
- Holding value: `V_hold = x₀·P₁ + y₀ = r·y₀ + y₀ = y₀·(1 + r)`.
- Divide: IL(r) = V_pool / V_hold − 1 = 2·√r / (1 + r) − 1. The pool size `y₀` cancels — impermanent loss is a pure function of how far the price moved.
price ratio r IL = 2*sqrt(r)/(1+r) - 1 ---------------- ------------------------ 0.5 (-50%) -5.72% 1.0 ( flat ) 0.00% 1.25 (+25%) -0.62% 1.5 (+50%) -2.02% 2 (+100%) -5.72% 3 (+200%) -13.40% 4 (+300%) -20.00% 5 (+400%) -25.46% 10 (+900%) -42.50%
Three properties fall straight out. (1) IL is never positive: since `(√r − 1)² ≥ 0` expands to `2√r ≤ 1 + r`, the ratio `2√r/(1+r)` never exceeds 1, so an LP can only match holding (at `r = 1`) or do worse. (2) It is symmetric — only the magnitude of divergence matters, not the direction. (3) It accelerates: a 4× move costs 20%, a 10× move costs 42.5%. This is why the loss is shrugged off for stablecoin pairs and brutal for a token that 50×'s.
Fees versus IL: the real bet
Impermanent loss is only one side of the ledger. The reason anyone provides liquidity is the other side: trading fees. On Uniswap v2 every swap pays 0.30% of its size to the LPs of that pool. Your true profit-and-loss is `fees earned − impermanent loss`. LPing is profitable exactly when accumulated fees out-earn the divergence loss.
Make that concrete. Fees collected over a period are roughly `fee_rate × (volume / pool_value)` of your position. To offset the 5.72% IL from our ETH-doubling example at the 0.30% tier, you would need cumulative trading volume of about `5.72% / 0.30% ≈ 19×` the pool's value over that same period. Whether that bet pays depends on a tug-of-war: high trading volume feeds you fees, while high volatility (a large price move) feeds you IL. You are, in effect, short volatility — an LP position behaves like having sold an options straddle.
Who, exactly, hands you those fees versus who inflicts the IL? This is the sharp insight behind LVR. The arbitrageurs correcting the pool's stale price are informed flow — they only trade when the market has moved, and their gain is precisely your divergence loss. The fees that actually compensate you come disproportionately from uninformed flow: a person swapping because they want the token, not because they know something. A good LP pool is one with lots of noise-trader volume relative to its volatility. A bad one is a quiet token that only moves in one direction — there, the only traders are the arbitrageurs draining you.
"Impermanent" is a misnomer — and what LPs actually do
Why "impermanent" at all? Because the formula is path-independent: it depends only on the current price ratio `r`. If ETH round-trips back to exactly $2,000, then `r = 1`, IL returns to 0, and the loss evaporates as if it never happened — you keep the fees for free. That is the optimistic case the name was coined for. But it is a trap to lean on. The moment you withdraw at any price other than your entry, the loss is realized and permanent, and prices rarely return to a precise level. Treat impermanent loss as a real, expected cost, not a temporary illusion.
And remember the framing from the start: IL is measured against holding the two tokens, not against your cash cost. In a bull market you can withdraw with a fat dollar profit and still have "lost" to impermanent loss. That is not a reason to panic — it is a reason to compare the right baseline before you deposit.
So what does a professional LP actually do about the dilemma? The toolkit:
- Pick the pair deliberately. Correlated or pegged assets (stable/stable, ETH/stETH) keep `r` near 1 and IL near zero; uncorrelated volatile pairs do the opposite.
- Match the fee tier to volatility. A volatile pair earns its keep only on a higher fee tier (e.g. 1%); a stable pair survives on 0.05% because its IL is tiny.
- Use concentrated liquidity (the next guide) to earn far more fees per dollar by focusing capital in a price range — at the cost of amplified IL when price leaves that range, and active management.
- Hedge the directional exposure. Some LPs short an equivalent amount of ETH (e.g. via a perpetual) so the position earns fees while staying roughly delta-neutral, isolating the fee-vs-IL bet from price direction.