Lap schedule
Every tier the pool can be in, in exact terms. Five percentages, four milestones between them, and one canonical pool. The percentages are compiled into the contract; the milestone sizes are chosen once at deployment and published here when they are.
The five tiers
Uniswap V4 expresses fees in pips, where 1,000,000 pips is 100%. These are the exact values the hook returns for each lap.
| Lap | Fee | Pips | Status | Leaves this tier when |
|---|---|---|---|---|
| LAP 0 | 5.0% | 50,000 | Opening tier | Cumulative ETH volume crosses milestone 1 |
| LAP 1 | 3.0% | 30,000 | — | Cumulative ETH volume crosses milestone 2 |
| LAP 2 | 2.0% | 20,000 | — | Cumulative ETH volume crosses milestone 3 |
| LAP 3 | 1.0% | 10,000 | — | Cumulative ETH volume crosses milestone 4 |
| LAP 4 | 0.5% | 5,000 | Floor | Never. This is the last tier. |
What a tier costs you
Straight arithmetic on the numbers above — the fee applied to a trade of a given size. Shown per 1 ETH of trade so the tiers are comparable; the fee is proportional, so scale it however you like.
| Lap | Fee | Per 1 ETH | Round trip (buy + sell) | Relative to the floor |
|---|---|---|---|---|
| LAP 0 | 5.0% | 0.0500 ETH | ≈ 0.0975 ETH | 10× |
| LAP 1 | 3.0% | 0.0300 ETH | ≈ 0.0591 ETH | 6× |
| LAP 2 | 2.0% | 0.0200 ETH | ≈ 0.0396 ETH | 4× |
| LAP 3 | 1.0% | 0.0100 ETH | ≈ 0.0199 ETH | 2× |
| LAP 4 | 0.5% | 0.0050 ETH | ≈ 0.0100 ETH | 1× |
The four milestones
Each milestone is a cumulative ETH-volume figure. They are passed to the hook as constructor arguments and stored immutably — once the hook exists, they are part of it. The contract will not deploy unless they are strictly increasing.
| Milestone | Moves the fee | Measured in | Value |
|---|---|---|---|
| M1 | 5.0% → 3.0% | Cumulative ETH through the pool | set at deployment |
| M2 | 3.0% → 2.0% | Cumulative ETH through the pool | set at deployment |
| M3 | 2.0% → 1.0% | Cumulative ETH through the pool | set at deployment |
| M4 | 1.0% → 0.5% | Cumulative ETH through the pool | set at deployment |
A worked example
| Lap | Fee | Example milestone | Example fees collected in this tier |
|---|---|---|---|
| LAP 0 | 5.0% | first 50 ETH | 2.50 ETH |
| LAP 1 | 3.0% | next 70 ETH (to 120) | 2.10 ETH |
| LAP 2 | 2.0% | next 130 ETH (to 250) | 2.60 ETH |
| LAP 3 | 1.0% | next 250 ETH (to 500) | 2.50 ETH |
| LAP 4 | 0.5% | everything after | 0.005 ETH per ETH, forever |
Read the last column as the shape of the thing: the expensive tiers are short and the cheap tier is unbounded. The pool spends its early life charging a lot for a little volume, and the rest of its life charging very little for however much volume it ever sees.
The canonical pool
The hook recognises exactly one pool. Every field below is checked on every call; a pool that differs in any one of them is not this pool and the ratchet does not apply to it.
| Field | Value | Note |
|---|---|---|
| currency0 | native ETH | Not WETH. The ETH side is the side that gets counted. |
| currency1 | $REDLINE · address pending | Published when the token is deployed |
| fee | dynamic-fee flag | Required — the tier override only takes effect on a dynamic-fee pool |
| tickSpacing | 200 | Fixed constant in the hook |
| hooks | address pending | Published when the hook is deployed |
| venue | Uniswap V4 · Ethereum | — |