Learn · season 03 · episode 10

Uniswap V3: choose your price range

You choose the prices at which your tokens are available for other people to trade. A narrower range can earn a larger share of fees while active, but a price move can leave you holding just one token and earning no new fees. This is called concentrated liquidity.

Start with the V2 lesson for pools, swaps and the holding comparison. These are hypothetical browser simulations.

Start with one person’s tokens

What happens when trading moves beyond my range?

Asha contributes 1 WETH and 2,000 USDC, worth $4,000 at the starting price. WETH represents ETH as a token; this example holds USDC at $1. She offers her tokens for swaps only while WETH trades between $1,000 and $4,000.

Predict first: if WETH rises beyond $4,000, will Asha still have WETH to sell and keep earning new fees?

Each button starts a separate scenario from Asha’s original deposit; repeated clicks do not add trades. Simulated locally, no real funds.

White marker: $2,000.00 per WETH. Shaded range: $1,000–$4,000. Inside: able to earn fees on eligible swaps.

Asha’s WETH · started at 1

1.0000 WETH

Asha’s USDC · started at 2,000

2000.0000 USDC

Bars use separate fixed scales: 0–4 WETH and 0–5,000 USDC. Compare each balance with its own starting amount, not with the other bar.

Nothing has traded yet. Your $4,000 contribution begins as 1 WETH and 2,000 USDC.

Before withdrawing: Asha receives the position’s current token mix, not her original amounts. Withdrawal and any later swap cost transaction fees; selling received tokens can move the price. Network congestion, unavailable transaction inclusion or a contract failure can prevent an immediate exit. Being outside the range does not itself lock the position. Changing the range can require trades and costs; it does not erase an earlier loss.

Model limits: market scenarios assume trades align the pool with the new price, without intermediate deposits or range changes. The chosen fee total is valued separately from principal; real V2 fees stay in reserves. V3 prices here are continuous; tick rounding is omitted. USDC losing its $1 value is an additional risk. Network delays, contract failures, token-backing losses and exit execution are explained, not simulated.

Explain it back: Asha says, “Lots of people traded, so my deposit must be safe.” Explain who pays her fees, how her original money can still fall, and why withdrawing may not give her the original tokens immediately.

Compare an example explanation

Traders pay fees for using the pool. Trades change what Asha owns, and those tokens can lose value. Fees may not cover that loss or the shortfall against holding. Heavy trading outside her chosen range earns her no new fees. An exit returns the current mix; it still needs a successful transaction and costs money.

Optional depth: range settings, inventory calculations and fee comparisons

01 · focus the inventory

Same budget, a smaller trading range

V2 supplies liquidity across the full positive price range. V3 lets an LP choose lower and upper prices. Within that interval, the position supplies liquidity to swaps. A narrower interval concentrates the same capital, potentially increasing its share of active liquidity and fees for trades there.

This does not guarantee higher earnings: price may leave the range, volume may be low, and other LPs compete for fees. V3 positions have their own ranges and fee tiers. The standard position manager represents each position with an NFT, rather than one interchangeable pool-share token.

Sources: Concentrated liquidity and the V3 whitepaper.

02 · move through the range

Your inventory changes as the price crosses

  1. Set the final price to $2,000. With the default $1,000–$4,000 range, you hold both tokens and can earn fees from eligible swaps.
  2. Raise it to $5,000. The position has sold all its WETH into USDC. Above the upper bound, it stops participating in swaps and earns no new fees.
  3. Lower it to $500. The position is all WETH. It cannot keep exchanging USDC for WETH below its lower bound.
  4. Return inside the range. The position participates again without needing a new deposit. Previously earned fees are retained throughout.

Does the fee cover the shortfall?

Simulated · computed here · hypothetical prices

Start with $4,000 at $2,000 per WETH. USDC stays at $1 in this model.

500 to 1900 USD/WETH
2100 to 8000 USD/WETH

Changing the range creates a new starting position with the same $4,000 budget. It changes the initial token mix; this is not a free rebalance of an existing position.

Your starting inventory: 1.0000 WETH + 2000.0000 USDC.

500 to 8000 USD
0 to 4000 USD
0 to 500 USD
Range $1,000.00–$4,000.00. White marker: $4,000.00. At or above the upper bound: all USDC, no new fees.

Final LP inventory, excluding fees: 0.0000 WETH + 4828.4271 USDC.

Hold the original tokens$6,000.00
LP principal, before fees$4,828.43
LP including fees, minus costs$4,928.43

Impermanent loss before fees: $1,171.57 (19.53% behind holding).

After fees and costs, your LP position is $1,071.57 behind holding.

Compared with your original $4,000 deposit: $928.43 gain. This answers a different question from the holding comparison.

Fees needed to match holding: $1,171.57 = inventory shortfall + costs.

Assumptions: arbitrage aligns the pool with the final market price; no deposits, withdrawals or range changes along the way. Fees are a separate hypothetical dollar total after any protocol share, not a forecast from the price move. No reinvestment or compounding is modelled. Real V3 fees accrue in tokens separately from principal. This model uses continuous prices, without tick rounding; it treats range endpoints as inactive.

Where the swap fee goes

Illustrative fee estimate

Traders pay a fee on swaps. The LP portion is shared among the liquidity participating in those trades. This calculator holds your share constant over the selected volume.

Estimate fees on new volume at the selected price. This separate experiment does not change the accumulated-fees input above.

0 to 1000000 USD
1 to 100 %

Estimated fees for your position: $0.00

$100,000.00 × 0.30% × 83.33% retained for LPs × 0% share.

This V3 position is outside its range. Its share of this new trading volume is zero. Previously earned fees are still yours.

These are selectable assumptions, not live pool quotes or an APR forecast. Dollar volume and fee values use a fixed conversion. Actual earnings depend on the price path, trading volume and competing active liquidity.

Reference: Uniswap pool fees.

Inventory calculation follows Uniswap’s liquidity-to-token amount relationships. This lesson omits tick discretisation and integer rounding.

03 · compare the same starting tokens

A tighter range also changes your exposure

Reset the comparison. At $4,000, the default V3 position has about $4,828.43 in principal, compared with $6,000 from holding. Its $1,171.57 shortfall is larger than V2’s $343.15 for this move and starting budget. $100 in fees does not cover either shortfall.

Try a $1,800–$2,200 range. It converts the position into USDC sooner as WETH rises. Check the starting inventory too: an asymmetric range around the opening price need not start with equal dollar values. The holding benchmark always uses that position’s actual original tokens.

Moving a range means changing the position, potentially trading tokens and paying transaction costs. It cannot undo an earlier shortfall. Fees must cover the holding shortfall and those costs to outperform holding. The final price alone cannot tell you the fees earned: the path, active trading volume and competing liquidity matter.

WETH is above your upper range price. What does the position hold?