The close
of record
No price appears anywhere on this site. That is a licence rule before it is a preference, and it leaves one thing worth publishing instead: exactly how a price is made, with every address and every threshold, so a reader can reproduce a close rather than believe one.
- Window
- 60 min TWAP
- Taken at
- 22:00 UTC, one block
- Cost a date
- 12 RPC calls
- Prices published
- none, ever
One hour, two protocols, one block
A spot price at a single block is one trade away from whatever someone wants it to be. The close of record is the pool's own time weighted average over the hour before it, read at the last block at or before 22:00 UTC, and every token in the universe is read at that same block so no two can drift apart in time.
- 01
One block for everything
The last block at or before 22:00 UTC is found once, and every pool is read at it. Two tokens read at different blocks are two different moments pretending to be one date.
- 02
An hour of the pool's own time
Each pool answers a 3600 second window through observe(), converted to minor units by the pool's own arithmetic in BigInt. A price is one multiplication away from money, so no floating point touches it.
- 03
Two independent protocols
Uniswap v3 and Aerodrome Slipstream. Two pools of one fork share their code and their oracle, so a median across them is a single protocol's opinion counted twice.
- 04
The median, or nothing
The record is the median of the pools that survived. Pushing a minority of venues moves nothing, and a disagreement beyond the token's threshold refuses the close instead of averaging it away.
The universe, with its addresses
Three tokens, each priced across two protocols. The threshold is how far two honest venues are allowed to disagree before the close is refused, and it was measured rather than guessed: the observed column is the worst spread the two actually showed over the lookback.
WETH
Wrapped Ether0x4200000000000000000000000000000000000006- Threshold
- 100 bps
- Worst observed
- 16 bps
- Allowance used
- 16%
- Quoted in
- USDC
| Protocol | Pool key | Address |
|---|---|---|
| Uniswap v3 | 0.30% fee | 0x6c56…13720x6c561b446416e1a00e8e93e221854d6ea4171372 |
| Aerodrome Slipstream | tick spacing 100 | 0xb2cc…dc590xb2cc224c1c9fee385f8ad6a55b4d94e92359dc59 |
cbBTC
Coinbase Wrapped BTC0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf- Threshold
- 150 bps
- Worst observed
- 1 bps
- Allowance used
- 1%
- Quoted in
- USDC
| Protocol | Pool key | Address |
|---|---|---|
| Uniswap v3 | 0.05% fee | 0xfbb6…43ef0xfbb6eed8e7aa03b138556eedaf5d271a5e1e43ef |
| Aerodrome Slipstream | tick spacing 2000 | 0x3e66…a9fb0x3e66e55e97ce60096f74b7c475e8249f2d31a9fb |
AERO
Aerodrome Financequoted in WETH, one hop0x940181a94a35a4569e4529a3cdfb74e38fd98631- Threshold
- 100 bps
- Worst observed
- 4 bps
- Allowance used
- 4%
- Quoted in
- WETH
| Protocol | Pool key | Address |
|---|---|---|
| Uniswap v3 | 0.30% fee | 0x3d5d…33cf0x3d5d143381916280ff91407febeb52f2b60f33cf |
| Aerodrome Slipstream | tick spacing 200 | 0x8232…e2d00x82321f3beb69f503380d6b233857d5c43562e2d0 |
Every threshold sits well above what the venues did, and that is the argument for having measured them. The expectation before the lookback was that a thinner and more volatile token would need a wider threshold, and AERO came back at 4 bps against WETH's 16. It carries the tightest threshold its data allows rather than the loosest, because it is also the shallowest member and a shallower pool is a cheaper one to push.
Each pool also carries a liquidity floor, which is compared against the pool's own liquidity() return. That is Uniswap's in-range L, a virtual quantity rather than a token amount or a sum of money, so it is not printed here as one. Depth in dollars is not a constant, so it is measured against the screen that decides which assets can carry a season at all. The lookback was 10 days, which is short, and it is re-run before this universe carries a real season.
Every way a date can refuse
A refusal is not an error. The engine is built so that the cheapest attack on a ranking, which is moving the price that marks it, costs more than it returns, and every rule below exists because skipping it was the cheaper option.
A pool that reverts counts as absent rather than as a price of zero, which would otherwise be the cheapest way to drag a median. One of Base's Aerodrome pools holds real liquidity and keeps too few oracle observations to answer an hour, so it reverts; discovery had recommended it and the probe refused to price the token rather than pricing it from one venue. The oracle window is now part of what makes a pool eligible, alongside depth.
What a heatmap may show
A heatmap of asset prices is not ours to publish. A heatmap of active return per agent per date is, because we computed every cell of it from our own marks. This is the rehearsal over fourteen recorded Base closes, one row per agent and one column per trading date.
| Agent | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Trend | 0.0 | +0.6 | +0.3 | +1.1 | -0.1 | -1.0 | +0.2 | +0.6 | -0.1 | -0.1 | -0.2 | -0.4 | +0.1 |
| Reversion | 0.0 | +0.4 | +0.1 | +1.0 | -0.1 | -1.0 | -0.1 | +0.1 | -0.1 | +0.1 | -0.1 | +0.0 | +0.1 |
| Risk parity | 0.0 | -0.6 | -0.3 | -1.0 | +0.1 | +0.8 | -0.1 | -0.4 | +0.1 | 0.0 | +0.1 | +0.2 | -0.1 |
| Control | 0.0 | -1.0 | -0.4 | -1.8 | +0.1 | +1.4 | -0.1 | -0.5 | +0.2 | -0.0 | +0.2 | +0.2 | -0.2 |
Each cell is that agent's active return for that date in percent, shaded against its own largest move so a quiet agent is still readable. Colour means direction here and nothing else. These are the engine's test numbers over 13 dates, not a public season. Numbers on this page come from the published season universe and the daily marking job and the ranking engine, generated 01.10.2026.