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.
Read from the pool's own key on the chain. A swap pays 0.0012%: this 0.001% to liquidity providers, and 0.0002% to the protocol on top.
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 1. Part of the pool's key in v4, so unlike v3 it needs no separate contract call.
This pool runs without a hook.
Nothing runs alongside its swaps or its deposits, so it behaves the way a v3 pool does.
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 · 0.001% fee on every swap, plus 0.0002% to the protocol
0x8aa4e11cbdf30eedc92100f4c8a31ff748e201d44712cc8c90d189edaa8e4e47
Where a position in this pool would be active, as the price of one USDC in USDT.
0.999001 – 1.0013 USDT per USDC
0.12% below and 0.11% above the current price.
Current price 1 USDC = 1.00016 USDT
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 USDC; if it rises above it, only USDT.
From how much the price of USDC 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.
30 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 30 days | Inside, on days it never saw | Fee share while inside |
|---|---|---|---|---|
| Tight (1σ) · shown above | 0.999001 – 1.0013 USDT | 8 of 30 | 13 of 90 | 1× |
| Medium (1.5σ) | 0.998401 – 1.0019 USDT | 8 of 30 | 13 of 90 | 0.66× |
| Wide (2σ) | 0.997902 – 1.0024 USDT | 8 of 30 | 13 of 90 | 0.51× |
| Very wide (3σ) | 0.996805 – 1.00361 USDT | 8 of 30 | 13 of 90 | 0.34× |
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.
Of the last 30 days, 8 stayed entirely inside this range, 0 sat entirely outside it, and 22 crossed an edge.
A day that crossed an edge spent part of itself inside and part outside, and the source's daily high and low cannot say how much of each.
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.
The size this is worked out for. Change it in the form above.
Over the 8 days the price never left the range.
Those fees against the money put in, over those days and no others. Not a yearly rate, and nothing here turns it into one.
On the 8 days the price never left this range, the pool charged $569.78 in fees. A deposit of $1,000 placed in the range would have taken about $0.05 of that — its own liquidity as a share of the liquidity that was actually active on each of those days.
A larger deposit does not collect proportionally more. The share is your liquidity over everybody's including your own, so past a certain size most of what you add dilutes what you already have — which is why the amounts offered are a thousandfold apart.
Fees only, and days that have already happened. It assumes the position was open for every one of them and that nothing moved in response to it, and it says nothing about what the next thirty days will pay. What a position gives up against simply holding the two tokens is the comparison further down this page, and the two have to be read together.
These agree on every measured day. The declared rate is the rate that was charged.
0.001% to liquidity providers and 0.0002% to the protocol, combined the way the PoolManager charges them — which is what a swapper pays, and what the fees above are made of.
The window's fees over the window's volume, so a busy day counts for more than a quiet one.
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.
Across 3 folds, 13 of 90 days stayed entirely inside the band this method would have drawn.
Every figure above is fitted to the days it describes. These are not. The method was stepped back 30 days, run again on the prices before that point only, and centred on the price at that point — one somebody standing there would actually have seen. Then it was laid over the days that followed, and the whole thing repeated back through the history as many times as it had room for.
How many times the history had room to fit a band and then test it.
| Days checked | Fitted volatility | In / out / crossed |
|---|---|---|
| 2026-06-24 → 2026-07-24 | 0.47% | 4 / 0 / 26 |
| 2026-07-24 → 2026-08-23 | 0.40% | 1 / 0 / 29 |
| 2026-08-23 → 2026-09-22 | 0.30% | 8 / 0 / 22 |
Each row is one fold: the days it was checked over, the volatility its own fit measured — not the figure above — and how those days sat against the band that fit produced.
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 USDC | Position against holding |
|---|---|
| 0.999001 USDT | -0.03% |
| 0.999579 USDT | -0.01% |
| 1.00016 USDT | 0.00% |
| 1.00073 USDT | -0.01% |
| 1.0013 USDT | -0.03% |
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 1.
A price step of 0.01% between usable edges.
USDT per USDC
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 09: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.
Nobody held these bands. Each is what the method would have suggested at that moment, laid over prices that then happened — and the days above, which the suggested range was drawn from, are not these days.
A few folds on one pool are not a measure of how often the method holds, and say nothing about what happens next. Consecutive fits overlap, too — a 31-close fit is longer than a step of one horizon — so the folds are not independent of each other.
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 USDC / USDT — 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 ≈ 17,723,000 ETH
hook 0x0000113dcf4add69999fad8f20f2b63f979bfcc0 · may change what a swap costs
Depth at the current price ≈ 10,682,500 ETH
no hook
Depth at the current price ≈ 7,084,200 ETH
no hook
Depth at the current price ≈ 3,802,620 ETH
no hook
Depth at the current price ≈ 170,229 ETH
no hook
Depth at the current price ≈ 7,746.41 ETH
no hook
Depth at the current price ≈ 2,838.72 ETH
no hook
Depth at the current price ≈ 744.934 ETH
no hook
Depth at the current price ≈ 0.854734 ETH
no hook
Depth at the current price ≈ 0.623385 ETH
hook 0x38fdc1b79148abe3c621467e3cc6556453b0f6c0 · may change what a swap costs
Depth at the current price ≈ 0.611287 ETH
no hook
Depth at the current price ≈ 0.146377 ETH
hook 0x4440854b2d02c57a0dc5c58b7a884562d875c0c4 · may change what a swap costs
38 more are not shown; they are shallower than these.
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.
The v3 pools that trade USDC / USDT — the same two token contracts, at each fee tier.
Holds 21,994,906.1647 USDC + 12,315,612.4666 USDT
Holds 313,081.6776 USDC + 293,755.778 USDT
Holds 30,730.3304 USDC + 31,275.3702 USDT
Holds 633.984 USDC + 761.5102 USDT
A tier holding more liquidity is a larger crowd sharing the same swap fees, not a better place to be. Which one suits a position depends on how far the price moves and how often, and that is measured per pool — so the honest way to compare them is to open each and read its own figures. The horizon and multiplier you chose travel with the link.
These are the balances the two token contracts report for each pool, read from the chain rather than from an indexer. The indexer's own figure was measured against them and overstates what is there by between 1.3 and 13 times, so it is not shown. Two token amounts rather than one dollar figure, because every tier here holds the same two tokens and nothing has to be priced to compare them.
Every price here means how much USDT one USDC is worth. The suggested range runs from the lower edge shown above to the upper edge shown above, and the current price is inside it, slightly nearer the upper edge. It was drawn from the pool's past movement, not from a view about where price will go. The range is one volatility width on each side of the current price, with both edges placed where that method specified. This v4 pool has no hook, so it behaves like a v3 pool rather than having an additional contract that can alter swap charges or payouts. Widening the range buys more days inside the band as these figures show, but gives a smaller share of the fees charged on each day inside it.
Still being written…
Still being written…
Still being written…
If the price falls below the lower edge, the position holds only USDC. If the price rises above the upper edge, it holds only USDT. This is not an order book and nothing schedules a conversion at either edge. A price that turns back inside can leave the position holding some of each token, so there is no single conversion price. The side-by-side calculation shows only a small price-movement difference from simply holding the two tokens across the displayed band, with the largest difference at the edges. The one-sided averages describe the geometric mean of each side's bounds; they do not promise that price will reach an edge or cross the whole band.
The volatility figure describes how much this pair moved during the historical window used to draw the band. That movement was small, so the displayed range is close to the current price. The historical window had usable observations throughout, and the price stayed entirely inside the displayed range on only a minority of those days; it crossed an edge on most of them and was never entirely outside. The same method was also checked on days the fit never saw. Across those past stretches, only a minority of the checked days stayed entirely inside, with results varying from very few days to several days. This is a check on selected past stretches, not a verdict that the method works or a prediction of future price.
The comparison with simply holding is exact for price movement only. It does not include the fees paid to a liquidity provider, gas costs, or whether the pool and its tokens are trustworthy. The historical fee figures are pool-wide, not anyone's earnings; the deposit example turns them into a position-level illustration for days that have already happened, not a yield, rate, or forecast. It also ignores the fees a position would earn as the other half of the comparison. The swap-cost figures show how much the market absorbs before the next unread price step, not a limit or capacity for larger swaps. For this pool, the charged swap rate matched its stated swap terms throughout the measured days, but past charges do not determine future earnings.
Written by gpt-5.6-luna. The figures above were not.