What this pool is, read from its own key. A v4 pool is not a contract of its own: it lives inside one PoolManager and is named by a hash of the five things that define it — the two currencies, the fee, the price step, and the hook.
This pool's key carries the dynamic-fee flag instead of a fee, so what a swap costs is decided by the hook at the moment it happens. This read did not observe one, and there is no fee here to report.
Taken by the protocol on top of the pool's fee, on every swap. Set by governance, and read from the pool's state on the chain.
The finest step at which a position's edges can be placed in this pool — its tick spacing of 5. Part of the pool's key in v4, so unlike v3 it needs no separate contract call.
The zero address here is not a missing field. v4 lets a pool hold the chain's own ether rather than a wrapped token, and that is what this is.
0xa4e6f5500e88691fdcb289aa0e99067481434880
This hook is permitted to change what a swap costs or pays. Any figure drawn from price history — a suggested range, a fee tier, a comparison against simply holding — assumes the pool charges what it says and pays what the curve says. Neither assumption is safe here, and none of it is visible in a price series.
These are read out of the hook's own address. v4 stores a hook's permissions nowhere: a hook is deployed to an address whose last fourteen bits spell out which callbacks the PoolManager will invoke, and the PoolManager checks those bits rather than asking the contract. So this says what the hook may do, never what it does — one permitted to rewrite the fee on every swap may always return the same fee, and that is not knowable from here.
Below is the range analysis. The range comes from prices that already happened, so it holds here exactly as it does for a pool with no hook — a hook cannot retroactively change where price went. What a hook can change is what a swap costs, so the rate this pool charged is measured from what it collected rather than taken from the fee above.
Uniswap v4 · Ethereum mainnet · fee set by its hook on every swap
0x553f5e94603f1fcdaa08eb22499d59e4a39e2f8d071c3c6946c27e5e38754ffc
Where a position in this pool would be active, as the price of one ETH in ETHFI.
3,027.82 – 5,128.52 ETHFI per ETH
23.17% below and 30.13% above the current price.
Current price 1 ETH = 3,940.97 ETHFI
The current price is inside this range. A position opened here would be active straight away.
Between these two prices a position earns its share of the pool's swap fees. Outside them it holds a single token and earns nothing until the price comes back.
If the price falls below the range, the position ends up holding only ETH; if it rises above it, only ETHFI.
From how much the price of ETH actually moved over the last 30 completed days — not from a forecast of where it goes next.
The standard deviation of one day's price change, over the window.
The same movement stretched over the horizon chosen below: one standard deviation, either way.
Chosen below. A wider range is left less often, and the same deposit spread over it is thinner at any one price.
19 daily changes went into it.
The range is centred on today's price and drawn the same distance up and down in ratio terms — halving and doubling are the same move — which is why the two percentages differ. It describes how far the price has moved, not where it will go: it is not a forecast, and the width is not a confidence level. Nothing here sizes a position or says how much of either token to deposit.
The same method at each width the form offers, so the trade-off can be seen rather than told: a wider range holds more of the days, and spreads the same deposit over more prices — which is the last column, and it is the arithmetic of the protocol rather than an estimate.
| Width | Range | Inside, of the last 21 days | Inside, on days it never saw | Fee share while inside |
|---|---|---|---|---|
| Tight (1σ) · shown above | 3,027.82 – 5,128.52 ETHFI | 21 of 21 | not enough history | 1× |
| Medium (1.5σ) | 2,654.75 – 5,849.24 ETHFI | 21 of 21 | not enough history | 0.69× |
| Wide (2σ) | 2,327.65 – 6,674.57 ETHFI | 21 of 21 | not enough history | 0.53× |
| Very wide (3σ) | 1,788.49 – 8,682.34 ETHFI | 21 of 21 | not enough history | 0.38× |
The first count is over the days each range was drawn from, so it says how that width was fitted, not how it held. The second is the check above, run for each width: the method stepped back a horizon and laid over the days that followed.
The last column is what the same deposit would take of the fees charged on a day the price stays inside that range, against the width shown above — so that one reads as one. It is the protocol's own position arithmetic rather than an estimate: a narrower range turns the same money into more liquidity over fewer prices. It assumes the rest of the pool's liquidity is unchanged, which a deposit large enough to move it would not leave true, and it says nothing about the days price spends outside.
The whole pool's, shared among everyone whose liquidity was active.
This pool's hook is permitted to take a share of a swap, and nothing in the source separates the hook's share from the liquidity providers'. The fees above are what the pool charged, which is a fact; tying a portion of them to this range would be a claim about a position nobody can check.
Of the last 21 days, 21 stayed entirely inside this range, 0 sat entirely outside it, and 0 crossed an edge.
These are the same days the range was drawn from, so they show how it was fitted rather than testing how it holds up — and the range is centred on today's price, which nobody could have opened a month ago. Read them as how the pool's recent movement sits against the range, not as a backtest.
None of this is what a position would earn: it is what the whole pool charged. What a deposit would have taken of it — its share of the liquidity active while the swaps happened — is the panel directly below, and even that is fees and nothing else.
Not shown for this pool
For the same reason as the figure above it: a hook here may take a share of the swap, and nothing in the source separates its share from the providers'. A fraction of a total that cannot be attributed to this range cannot be attributed to a deposit in it either.
There is nothing to compare against: this pool declares no rate at all. The figures here are what its hook actually set.
This pool's key carries no fee. Its hook sets one per swap.
The window's fees over the window's volume, so a busy day counts for more than a quiet one.
1 more day(s) in the window traded nothing, or were missing a figure, so no rate could be divided out of them.
The fee the pool states is one number. This is what swappers actually paid, divided back out of the same days as the figures above: a day's fees over that day's volume. It needs no extra request and nothing from the hook.
None of this is what reaches a liquidity provider. This pool's hook is permitted to take a share of a swap, and the source does not separate the hook's share from the providers'. What these figures say is what a swap cost, not who received it.
This pool could not be checked out of sample
This pool does not have enough indexed history to fit a band in the past and still have a full horizon of days to check it against.
What a position in this range would be worth compared with simply holding the two tokens, at each price. Exact arithmetic rather than an estimate — but it counts price movement and nothing else. It says nothing about the fees a position would earn, and fees are precisely what a liquidity provider is paid for this difference.
| Price of ETH | Position against holding |
|---|---|
| 3,027.82 ETHFI | -6.98% |
| 3,454.35 ETHFI | -1.76% |
| 3,940.97 ETHFI | 0.00% |
| 4,495.7 ETHFI | -1.75% |
| 5,128.52 ETHFI | -6.98% |
The price this is measured from — the pool's current price.
This is what is usually called impermanent loss. It is only impermanent if price comes back: a position closed at a price other than the one it opened at has realised it.
The range above is two-sided: money on both sides of the price, earning fees for as long as the price stays between them. Split it at the price and each half is a different instrument. A position sitting entirely above the price holds one token and nothing else, and the pool sells that token for the other as the price rises through the band. Below the price it does the reverse. That is what a range order is, and both halves of this range are one.
Where the position sits. Its inner edge is the first price step past the one the price is in, so it starts out holding none of what it is converting into.
What the conversion works out at, if the price crosses the whole band.
Where the position sits. Its inner edge is the first price step past the one the price is in, so it starts out holding none of what it is converting into.
What the conversion works out at, if the price crosses the whole band.
That average is the geometric mean of the two bounds — exactly, and whichever way round the prices are written. It follows from the protocol's own formulas for what a position holds at each end of its band, and the amount put in cancels out of it: a hundred dollars and a million convert at the same price.
And only if the price crosses the whole band. One that turns back inside leaves the position holding some of each, at no single price at all — which is the same thing the range above it is for, arrived at by accident.
Everything above is about providing liquidity. This is about using it. A pool's liquidity is constant between the price steps it is built on, so a swap that stays inside the step the price is in can be priced from the protocol's own formulas with nothing assumed — and one step further cannot, because another position's liquidity may begin there and this application does not read the liquidity at every price.
What goes in before the price reaches the end of the step it is in. Not a limit: a larger swap works, and this page cannot say what it costs.
How far the swap's average sits from the price on the screen.
What goes in before the price reaches the end of the step it is in. Not a limit: a larger swap works, and this page cannot say what it costs.
How far the swap's average sits from the price on the screen.
That average is the geometric mean of the price now and the price the swap ends at — the same identity the one-sided positions above rest on, seen from the other side of the trade. A swap crossing a band pays it; a position sitting in that band receives it.
The two directions are not the same size because the price sits somewhere inside its step rather than in the middle of it. What is worth comparing between pools is the size itself: it is what this market absorbs before it moves, and it is the reason anybody breaks a large order into small ones instead of sending it at once.
The ticks, blocks and figures the page above is checked against.
Source reported 82,795.
A price step of 0.05% between usable edges.
ETHFI per ETH
Before snapping to the tick grid, in the pool's own direction.
Sample standard deviation of daily log returns, scaled by sqrt(365).
How much of the window had consecutive daily prices behind it.
2026-09-22 10:07 UTC
Writing the explanation…
None of these is a recommendation. A narrower range takes a larger share on the days it holds and nothing at all on the days it does not, and which of those matters more depends on what the position is for — which nothing here knows.
Nothing here schedules the conversion and nothing guarantees it. This is not an order book: an order the price never reaches is the ordinary outcome rather than a failure, and there is no queue and no counterparty waiting. What there is instead is that the position collects the pool's fees while the price is inside the band, rather than paying them.
When the response arrived, not what it describes.
The v4 pools that trade ETH / ETHFI — the same two contracts. A v4 pair can be many pools: the fee is any number, the price step is free, and every hook makes another.
Depth at the current price ≈ 1,399.78 ETH
hook 0xa4e6f5500e88691fdcb289aa0e99067481434880 · may change what a swap costs
Depth at the current price ≈ 78.8678 ETH
no hook
Depth at the current price ≈ 3.64693 ETH
no hook
Depth at the current price ≈ 0.0584426 ETH
hook 0xa4e6f5500e88691fdcb289aa0e99067481434880 · may change what a swap costs
Depth at the current price ≈ 0.0176793 ETH
no hook
Depth at the current price ≈ 0.00210407 ETH
no hook
Depth at the current price ≈ 0 ETH
no hook
Depth at the current price ≈ 0 ETH
hook 0xa4e6f5500e88691fdcb289aa0e99067481434880 · may change what a swap costs
Ordered by depth at the current price — the pool's active liquidity and price, read from the PoolManager's storage — because a v4 pair is mostly pools somebody initialised and left, and depth is what tells those apart. It says how much a swap can draw on, and nothing about which pool is better: a deeper pool is a larger crowd sharing the same fees.
This pool holds the chain's own ether, and v3 cannot: every v3 currency is a token contract. Its nearest v3 pools trade wrapped ether instead, which is a different token to a pool.
The suggested range runs from the lower edge shown above to the upper edge shown above, quoted as ETHFI per ETH. The current price is inside it, somewhat nearer the lower edge than the upper edge. The band was drawn from the pair’s past movement over the stated measurement window, using one standard-deviation width on each side. It is a description of movement that already happened, laid over the period ahead so it can be read; it is not a prediction. Widening the range would have kept more of the observed days inside, but the figures show a smaller share of the fees charged on each day inside. A v4 hook is attached to this pool. It may run before swaps and deposits, refuse a swap or deposit, and, because this pool has a dynamic fee, set what each swap pays.
Still being written…
Still being written…
Still being written…
If price falls below the lower edge, the position holds only ETH. If price rises above the upper edge, it holds only ETHFI. The one-sided figures show the exact average price for each side under the protocol’s position formulas, not an order waiting to execute. They do not promise that price will reach an edge or cross the whole range. If price turns back inside, the position holds some of each token; there is no order book and nothing schedules a conversion. The swap examples show how much this market absorbs before its price moves over the portion where the available liquidity was read. They are comparison points, not limits or capacity estimates; larger swaps may work, but their cost is not shown.
The typical daily move was fairly large, and extending that observed movement across the stated horizon produced a broad band around the current price. The price stayed inside the suggested range on every measured day, with no measured day entirely outside it or crossing an edge. Those days are the same days used to fit the band, so they describe the fit rather than test it. The data source had missing daily prices, which were skipped rather than estimated, so the volatility uses fewer daily changes than the full window covers. No check on days the method had never seen was possible here because the pool has too little indexed history.
The comparison with simply holding is exact for price movement only. It shows the position behind the range underperforming holding at both edges and at the intermediate prices shown, but it includes no fees or gas. This pool’s hook sets the fee on each swap, and the reported charged rate is what swaps actually paid; the pool states no fixed rate to compare with it. Pool-wide volume and fee figures are not a particular provider’s earnings, and the available data do not turn them into a position-level fee result. The analysis also does not assess gas costs or whether the pool or its tokens are trustworthy.
Written by gpt-5.6-luna. The figures above were not.