LIQUIDITY LAB
Liquidity simulator.
Explore how price ranges affect your tokens and fees.
Fees earned
Practice estimate
100% of simulated activity in range
ETH / USDT
In rangeUSDT stays at $1.00 while this practice pair moves.
Practice price path
SIMULATED- open
- 2,014.633
- high
- 2,046.673
- low
- 1,987.206
- close
- 2,000
Drag a handle to change your range or ending price. Use arrow keys for small moves, Page Up or Page Down for larger moves, or Home and End for limits.
Made-up prices over 30 days. Hover, tap, or use ← → to inspect. Chart-based fees use simulated trading activity inside your range.
How do I read a candle?
The body joins the opening and closing price. The thin lines show the highest and lowest price. Green, hollow candles close higher or unchanged; red, filled candles close lower.
The shaded band is your chosen range. The gray dotted line marks entry; the green dashed line marks ending price.
See the range on a price line
What did I start with?
0.2260722 ETH + 547.8556 USDT.
The ending price shows your token mix. Fee income also depends on the trading volume inside your range.
Wide range example Illustrative CL scenario; not live pool data or financial advice. Practice pair: ETH / USDT. Prices are illustrative, not live quotes. Prices in USDT per ETH; USDT stays at $1 in this example. Fees are on. Deposit: $1000.00 | Entry: 2000 | Range: 1600–2400 | End: 2000 LP principal: $1000.00 | Holding same initial assets: $1000.00 Estimated fees: $8.54 | Costs: $3.00 | Net vs holding: $5.54 Fee model: Simulated chart activity and liquidity concentration. Fee assumptions: 100000 daily volume × 30 days × 0.3% fee × 95% LP retention × 0.09990009990009989% active-liquidity share × 100% in-range volume. Simulated fees assume equal volume per candle, spread over log-price travel; other active liquidity stays constant, calibrated from $1000000 in a reference range 20% below/above entry. This is a benchmark, not actual competing deposits. Moving the range changes both activity and active share. Candles are made up, not historical prices. Ending outside the range does not erase earlier fees. No emissions, compounding, tick rounding or fee-token price changes.
How this example works
This practice example uses your inputs rather than live pool data. It illustrates mechanics and does not predict earnings.
This models one continuous price range. It leaves out tick rounding, token rewards, DLMM bins, compounding, and changes in the value of fee tokens.
Let a = √lower, b = √upper, and s = √clamp(price, lower, upper). Token A per unit of liquidity is (b − s)/(s × b); token B is s − a. Dollar value = (token A amount × pair price + token B amount) × token B’s fixed dollar value. Liquidity is derived so the initial position equals the deposit value. The holding comparator preserves those same initial quantities.
With fees switched on, estimated fees = daily volume × days × swap fee × LP retention × active-liquidity share × in-range volume fraction. Percentages are converted to fractions. Fees do not compound. In Chart and position mode, each candle gets equal assumed volume. An up candle follows open → low → high → close; a down candle follows open → high → low → close. Volume is spread in proportion to each leg’s log-price distance. Only the part inside your range counts. This is a simulation assumption; candles alone cannot reveal real trading volume.
Your active share is your liquidity divided by your liquidity plus a constant background benchmark. That benchmark uses the dollar amount under Other liquidity benchmark, calibrated to a reference range 20% below and above entry (within supported price limits). It is held constant across the path. Tighter ranges can raise your share while reducing activity in range. Manual mode uses your own share and in-range volume inputs instead. No activity in range means no modeled fees. Fees from earlier steps remain if the price ends outside.