LPvsHODL

Would the pool have beaten holding?

Paste a pool address from any major DEX on any major chain. Everything else — chain, protocol, fee tier — is worked out for you.

Load a pool

Range & assumptions

Your range
Advanceddetected automatically

Load a pool and the model is detected for you.

What it would cost to enter, exit and collect fees. Left at zero by default. On Ethereum mainnet a round trip has historically run somewhere around $50–200 depending on conditions; on Base, Arbitrum or Solana it is usually cents.

Better or worse than HODLing Awaiting a pool

Paste a pool address above and hit Load.

What you'd have now

Fees earned

If you HODL

What the pool did to your money

Load a pool to run the backtest.

How to read these numbers

Providing liquidity pays you a share of every swap that passes through the pool. It also quietly charges you for being right about price. This tool measures both against what actually happened, rather than against a hypothetical you type in.

Impermanent loss is not a fee, and it is not a bug

An automated market maker holds two assets and rebalances continuously to keep the pool priced against the wider market. When one asset rises, arbitrage traders buy it out of the pool until the price matches everywhere else. You end up holding less of the winner and more of the loser than you started with.

That gap — between what your position is worth and what the same two assets would have been worth untouched — is impermanent loss. The name is misleading. It reverses only if the price ratio returns to where you entered. Withdraw while the ratio is different and the loss is entirely permanent.

It is also symmetric in a way people underestimate. Impermanent loss appears whether the price goes up or down. Most liquidity providers discover it during a rally and assume a falling market protects them. It does not.

Fees are the compensation, and they are not guaranteed

Against that sits your share of trading fees, which depends on three things: the pool's fee tier, how much volume flows through it, and how large your deposit is relative to total liquidity. A pool with enormous volume and a thin fee tier can pay better than a quiet pool charging 1%.

The critical ratio is volume against total value locked. A pool holding $100 million that trades $50 million a day is working hard for its liquidity providers. The same pool trading $2 million a day is not. That relationship also explains why fee income collapses without the pool changing at all — capital arrives, everyone's share shrinks, and yields compress.

What a concentrated range actually changes

Uniswap v3 and its many descendants let you confine liquidity to a price band. Inside that band your capital does far more work and earns proportionally more of the fees. Outside it, your position earns nothing at all and sits fully converted into whichever asset fell.

This is the trade nobody explains clearly. A narrow range is a leveraged bet that price stays put. A wide range earns less per dollar but keeps earning. No setting wins in both worlds, and the right choice depends on volatility you cannot know in advance.

The backtest above shows exactly how many days a given band would have been earning and how many it spent idle. That number tends to be more sobering than people expect.

The deposit split is decided for you

On a constant-product pool you always deposit equal value on both sides. On a concentrated pool the split falls out of where the current price sits inside your range. Set a band reaching further above the current price than below it and you will deposit mostly the volatile asset. That is not a preference you express — it is arithmetic, and the tool derives it rather than asking.

Common questions

Does a higher fee tier always earn more?

No. Traders route through whichever pool offers the best execution, so a high-fee pool on a liquid pair often sees very little volume. The 0.05% tier on a major pair frequently out-earns the 0.3% tier on the same pair because it captures far more flow. Worth checking per pair rather than assuming.

Why does the tool refuse to model some pools?

Curve-style stableswap pools, Balancer weighted pools and discrete-bin designs like Meteora DLMM use different bonding curves. Running constant-product formulas on them produces confidently wrong numbers — badly overstated impermanent loss in Curve's case. The tool says so rather than guessing, with an override if you disagree with the detection.

Are the fee estimates conservative or optimistic?

Conservative for concentrated positions. Fee income is modelled at the pool's average pro-rata rate rather than boosted for concentration, because the size of that boost depends on how concentrated every competing position is — which is not in the public data. A narrow range really does earn more per dollar while in range; this tool does not credit you for it. What it models exactly is how many days you were earning at all.

Does this include gas?

No. Entering, exiting and collecting fees all cost gas, and on Ethereum mainnet those costs can exceed a year of fee income on a small position. Treat every result here as a ceiling and subtract your own transaction costs.

Can past results tell me which pool to enter?

Only weakly. High historical fee yield usually reflects high volatility — the same volatility that generates impermanent loss. And any pool that reliably paid well attracts capital until the yield compresses. Backtests are useful for understanding mechanics and sizing trade-offs, not for picking winners.

Method and assumptions