The Bench
Everything a number needs before you can use it.
The bench is where the instrument sits, and a measurement is worth what its bench notes are worth. This page is the opposite of a headline.
The state of every part
Three markers, and no fourth.
A single blanket disclaimer is easy to write and tells a
reader nothing about which part to trust. Every part carries its own, and
tools/validate.mjs fails the build if one goes missing — or if a part marked
measured ever acquires one, because a marker on everything is a marker on nothing.
Measured
Read from a public chain, with the window and the endpoint published. Re-runnable from this page.
Computed
Produced by code in this repository and checked against something outside it — an exact analytic result, a laboratory number, or a real EVM — and failing the build if it drifts.
Not built
A description of something that does not exist. No contract is deployed, no address is live, and nothing here has been audited.
| Part | Where | State | Note |
|---|---|---|---|
| The app — a Yoke you deploy and use | /app | Computed | Four transactions from your own wallet put a test token and a Yoke on Base Sepolia, and the deposit, Field and redeem buttons are real calls after that. Same contract as /yoke. Testnet only, and not audited. |
| The Gauge — any pool | /gauge | Measured | Point it at any Uniswap V3-style pool on Base and it reads the chain from your browser and reports that pool’s holding time. No key, no wallet, no server. |
| The Moment bench — any ERC-4626 vault | /moment#bench | Measured | Reads a vault’s own share price at 121 historical blocks and asks whether it ever falls and whether it accrues, steps, or paid nothing. |
| The vault census | /moment#census | Measured | The same bench run across every ERC-4626 vault taking deposits on Base. Its answer contradicts this site’s thesis for lending vaults, and the page prints it. |
| The published measurement | /crackle | Measured | Every Swap on ten Uniswap V3 pools on Base over a 48-hour window, with the fee each one paid computed from the event’s own amounts and its own price. |
| The re-run panel | /crackle#rerun | Measured | The same modules, run against a window chosen after this page was built. |
| The property runner | /yoke#run | Computed | The compiled contract executed on a real EVM from your browser, through an eth_call state override — including the four sabotaged builds, which you can watch fail. |
| The lattice | / | Computed | A zero-temperature random-field Ising model driven quasi-statically. The same file produces the figures and the verifier’s claims. |
| The avalanche model | /crackle#model | Computed | A rigid domain wall in a Brownian pinning field. Its avalanche-size exponent has an exact answer, and the build fails if the simulation misses it. |
| Moments | /moment | Not built | The share token. No canonical deployment; deploy one on testnet from /app. |
| The Screen | /screen | Not built | |
| Anisotropy | /screen#anisotropy | Not built | |
| The Loop | /loop | Not built | |
| Degauss | /pinning#degauss | Not built | |
| Yoke.sol | /yoke | Not built | The Solidity is in this repository, it compiles, and 14 of its properties are executed on an EVM on every build and again in your browser. It is NOT deployed: no address, no audit, and nothing to deposit into. |
Constants
Nothing here was chosen after seeing the answer.
- ABBM: pinning diffusion D
- 1
- ABBM: restoring force k
- 0.005
- ABBM: lattice spacing dx
- 1 — nothing below this is ever resolved
- ABBM: predicted cutoff
- Sc = 4D/k² = 160,000
- ABBM: avalanches
- 300,000 over 59,679,293 steps
- ABBM: fit window
- 100–16,000, 2.2 decades
- ABBM: KS floor
- S ≥ 100 — below it the lattice is visible and the law is refused
- RFIM: lattice
- 128² periodic, disorder R = 1.4
- RFIM: hero disorder
- R = 1.18, chosen for range on screen and stated as a choice
- seed
- 20260830 — mulberry32, and the Gaussian stream passes 13 tests on import
- chain: window
- 86,400 blocks (48 h) ending 50,665,274
- chain: block time
- 2.000 s, measured over the window rather than assumed
- chain: venue
- Uniswap V3 on Base, factory 0x33128a8f…
- chain: pool rule
- ten busiest by swap count in 6 × 200 sampled blocks
- chain: tolerance
- ±10% of the mean at 90% confidence, CLT and bootstrap side by side
- contract: compiler
- solc 0.8.26, optimizer 200 runs
Claims the build fails on
19 of them, and 5 are controls.
A suite in which everything passes has stopped being able to tell you anything. Five of these must fail for the rest to mean what they say.
| # | What the build asserts | Got | Kind |
|---|---|---|---|
| A1 | the Gaussian stream passes all 13 of its own moment, autocorrelation and lattice tests | 13/13 | must hold |
| B1 | the avalanche-size exponent is the exact 3/2, fitted freely with the cutoff not imposed | 1.5120 +- 0.0070 | must hold |
| B2 | above 100 lattice spacings the sizes match the analytic first-passage law with NOTHING fitted | D sqrt(n) = 0.868, n = 16242 | must hold |
| B3 | and below it they do NOT — the lattice is visible, so B2 is a fit and not a tautology | D sqrt(n) = 28.64 | must fail |
| B4 | the predicted cutoff 4D/k^2 is confirmed with NOTHING fitted, at every k with room for a scaling window | k=0.01: 0.95 k=0.005: 1.04 k=0.0025: 1.18 (3 values, 16x range of Sc) | must hold |
| B4b | and it is refused at the one k where the cutoff is only two decades above the lattice — the regimes overlap | k=0.02: 1.92 with 2.0 decades of room | must fail |
| B4c | halving the predicted cutoff makes the test reject wherever the sample actually reached the cutoff | k=0.02: 5.38 k=0.01: 2.46 k=0.005: 1.71 k=0.0025: 1.66 | must fail |
| B5 | every step the wall took belongs to exactly one avalanche, exactly | 59,670,968 + 8,325 burn-in = 59,679,293 of 59,679,293 | must hold |
| B6 | the median jump is one lattice spacing while the mean is hundreds — the average is not a typical event | median 1, mean 198.9 | must hold |
| B7 | the largest one per cent of avalanches carry most of the wall | 86.9% | must hold |
| B8 | the sample size the central limit theorem predicts is confirmed by a bootstrap that assumes nothing | 89.7% coverage at n = 103,882 | must hold |
| B9 | and half that many avalanches is visibly not enough | 75.0% | must fail |
| C1 | every spin in the lattice reverses exactly once, so no avalanche is double counted | 16384 of 16384 | must hold |
| C2 | the applied field never goes backwards — this is one branch of a loop, not a loop | monotone | must hold |
| C3 | the disorder at which one avalanche spans the lattice MOVES when the lattice grows — it is not a constant | 24.0% lower from L=48 to L=384 | must hold |
| C4 | a logarithmic decay and a power-law decay describe those points equally well, so neither may be quoted | R2 0.944 vs 0.907 | must fail |
| D1 | on chain, at least one pool needs longer than the ENTIRE scan to know its own mean to +-10% | WETH/USDC 0.3% needs 106h, WETH/VVV 1% needs 89h, WETH/DEGEN 1% needs 130h, QUID/USDC 1% needs 568h | must hold |
| D2 | both objects are concentrated past the point where a mean is a typical value | model 86.9%, chain 79.4% | must hold |
| D3 | coarsening the ruler to the hour empties the finding out of the chain series, exactly as it does in the model | blocks 88.4% empty -> hours 0.0% empty | must hold |
A number this site refuses to print
The critical disorder moves when the lattice does.
In two dimensions at zero temperature the random-field Ising model has no critical disorder: Rc is zero in the thermodynamic limit. So the disorder at which one avalanche spans the lattice is a property of the lattice — and measuring it at four sizes shows it moving, 24.0% lower from L=48 to L=384, still falling.
Both a logarithmic decay and a power law describe those four points, at R² 0.944 and 0.907. Four points cannot tell them apart, so the site quotes no extrapolated Rc at all.
The same failure as an APY in a different costume: a number that is a property of your window, printed as though it were a property of the thing.
Lexicon
Every term is a real word, and had to earn it.
The test: if the thing it names does not behave the way the
word does, the word is wrong. That removed four candidates, listed with their reasons in the
header of js/brand.js.
A yoke is the closed iron path that carries flux back around to where it started. Without one the field leaks into the room and the magnet loses strength doing nothing. It contains without holding: the flux inside a yoke is moving the entire time. A vault you cannot leave is not a yoke, it is a keeper on a shelf.
A magnetic moment is a quantity a body carries. It adds, it transfers with the body, and it can be read from outside without opening anything. That is a fungible claim on a position that is still working, which is the only thing this product does that a pool position does not.
The applied field is external. It is not the material deciding to magnetise; it is something happening to it. Fees are the same: the Yoke does not produce them on a schedule, somebody trades and the wall moves. Naming the hook after the drive rather than after the yield keeps the tense honest.
Magnetic screening does not make a field vanish. Mu-metal bounds where it can be measured, and the field is still there, doing what it did. That is the honest shape of a privacy claim: the order exists, it is still an order, and what changes is who can get an instrument on it.
Anisotropy is direction-dependence: a crystal magnetises easily along one axis and stubbornly along another, and the difference is a property of the material rather than of the field. An equity on a chain that never closes has a hard axis, and it is the 128 hours a week its home exchange is shut.
The area enclosed by a hysteresis loop is the energy lost per cycle — it is not a detail of the drawing, it is the whole cost of going round. One number called "yield" hides an area, and the shape of the loop is where it went.
A perfect crystal holds nothing. Remanence exists because defects pin the domain walls in place, so the thing that makes a material keep its state is its imperfections. Naming security after the flaws rather than after the strength is the accurate way round, and it is the way round an auditor works.
Degaussing walks the field down to zero and leaves the material where it is. It ends the drive; it does not take the metal. An emergency stop that can move assets is not an emergency stop, it is a key with a good name.
Put a coil round a bar of iron, magnetise it slowly, and the amplifier does not hum — it crackles, because the metal is going over in jumps four orders of magnitude apart in size. Barkhausen heard it in 1919. Everything else on this site is an argument about what that sound means for a yield figure.
The bench is where the instrument sits, and a measurement is worth what its bench notes are worth: the constants, the seeds, the window, the checks, and what each number is allowed to claim. It is the opposite of a headline, which is why it has its own page.
Colour
Two decisions, and everything else solved.
The ground’s lightness and hue were chosen. Every other hue is that hue rotated by an exact third or half of the circle, and every lightness was bisected until it hit a stated contrast ratio against the darkest surface text sits on.
| Token | Hex | Derivation | Contrast | |
|---|---|---|---|---|
| --deep | #979AA0 | surface, offset in OKLab L from the ground | — | |
| --ground-2 | #AEB1B8 | surface, offset in OKLab L from the ground | — | |
| --ground | #BABEC7 | surface, offset in OKLab L from the ground | — | |
| --plate | #C9CCD3 | surface, offset in OKLab L from the ground | — | |
| --plate-2 | #D6D9E0 | surface, offset in OKLab L from the ground | — | |
| --ink | #080A10 | solved by bisection against --deep | 7 : 1 | |
| --ink-2 | #202229 | solved by bisection against --deep | 5.6 : 1 | |
| --ink-3 | #292B32 | solved by bisection against --deep | 5 : 1 | |
| --faint | #303239 | solved by bisection against --deep | 4.5 : 1 | |
| --garnet | #631612 | ground hue + 120°, chroma 0.110 — the most sRGB holds here | 4.50 : 1 | |
| --brass | #413000 | ground hue + 180°, chroma 0.066 — the most sRGB holds here | 4.52 : 1 | |
| --verdigris | #003B12 | ground hue + 240°, chroma 0.090 — the most sRGB holds here | 4.56 : 1 | |
| Two chosen numbers: ground L 0.8 and ground hue 268°. 3 rotations, no fourth. | ||||
A rotation is only a rotation if sRGB can hold it. The first draft asked for every accent at one chroma; deep saturated yellow-green does not exist in sRGB, so the conversion clamped it and returned a plausible olive eighteen degrees away. The check compares the hue actually achieved, which is why it caught it.