The lexicon
Stratigraphy
Reading a column layer by layer and saying which layer came from where. Applied to a share price it means separating fee income from price movement in the underlying — which are not the same thing and are usually quoted as one number.
The words
nine words, and why each one is the right one
Every product noun here is a real term from firn and ice-core science, used for the thing it actually names rather than chosen for sound. That claim is checkable, so it is printed.
| Word | What it is here | Why that word |
|---|---|---|
| Core | a vault | A core is the column you extract in order to read a record out of it. A Core holds one asset and the record it keeps is the share price. |
| Lamina | the liquid ERC-20 receipt | A lamina is a single depositional layer — the thinnest thing in a core that is still a unit. Deposit into a Core and you hold Laminae, ticker fn- |
| Accumulation | harvesting fees into the Core | Accumulation is the glaciological term for net mass added at the surface per year. It is what makes the column deeper, and it is the only thing that raises a share price honestly. |
| Ablation | redemption | Ablation is mass leaving. It is the other half of the mass balance and the reason a column has a steady state at all. |
| Diffusion | private execution | Above close-off the pore space is connected, so gas from many different years mixes before any of it is trapped. An order that mixes before it seals is one an observer cannot pick back out — which is a claim about a count, and /diffusion states the count. |
| Stratigraphy | yield decomposition | Reading a column layer by layer and saying which layer came from where. Applied to a share price it means separating fee income from price movement in the underlying, which are not the same thing and are usually quoted as one number. |
| Stagnation | the emergency stop | A stagnant glacier is one that has stopped flowing but has not gone anywhere. Stagnation halts Accumulation and Diffusion; it cannot halt Ablation, which is the point. |
| Sonde | reading a Core straight off the chain | A sonde is the probe you lower down a borehole to log density against depth. The app reads every Core the same way — total assets, total supply and share price, from the chain, before you connect anything. |
| Close-off | the point a deposit stops being editable | The depth at which the pore space stops connecting to the surface and the record can no longer be changed. Everything above it is firn. It is the boundary the hero draws and the reason the site is named after a layer rather than a rock. |
What is real
Part by part
A blanket disclaimer at the bottom of a page tells a reader nothing about which part to trust. Every part of this site is in one of four states and each row says which.
Read off a public chain by a tool in this repository. Re-runnable by anyone, and re-run in your browser on the pages that say so.
Produced by a model in this repository whose output is checked against numbers published by somebody else.
Solidity in this repository, compiled and run on a real EVM by the build, with deliberately broken copies that must fail.
Not built. Described so the site can be read as a whole, and labelled so it cannot be mistaken for the rest.
| Part | State | Note |
|---|---|---|
| The Core contract | executed | contracts/Core.sol, compiled and its properties run on a real EVM by every build, then broken five ways to confirm the suite notices. |
| The app | executed | Deploy, approve, deposit and redeem, executed on Robinhood Chain by the build using the exact calldata the page sends. |
| The asset list | measured | Symbol, name, decimals and total supply read from each token contract on Robinhood Chain, not trusted from a list. |
| The firn model | computed | Herron & Langway (1980), checked against every number in the paper it can be checked against. It draws the hero and the mark. |
| A Core deployed by us | planned | There is no official Core, no token and no market. You deploy your own and you own it. |
| Diffusion | planned | Described only. Nothing batches anything today. |
| Borrow | planned | There is no lending market on this chain that takes a Lamina. Described so the shape is clear. |
| Stratigraphy | planned | The decomposition is specified; there is no live position to decompose. |
The build
What the build refuses to ship
A validator only checks what somebody thought of, and several of these exist because something got through. The table is generated from tools/validate.mjs, so this page cannot name a check that does not exist.
| The build fails unless… | Why it exists | |
|---|---|---|
| 1 | every document listed in pages.mjs exists on disk | |
| 2 | no unfilled fact or figure placeholder survived into the HTML | A slot that renders as a dot looks like punctuation. |
| 3 | every internal link resolves to a document that exists | cleanUrls means a typo is a 404 nobody sees until it is live. |
| 4 | the palette in js/brand.js is exactly what the solver produces | A hex edited in place would otherwise be blessed by the site that reads it. |
| 5 | the palette in css/base.css is exactly what the solver produces | |
| 6 | every one of the palette's own checks passes | Contrast, the exact hue rotations, and separation from all eleven sibling sites. |
| 7 | the firn model reproduces every number taken from the paper | The Arrhenius constants are the only quantities in the model from outside the paper; this makes them predict rather than be trusted. |
| 8 | no literal colour appears outside the generated palette blocks | Both the mark and the figures paint with custom properties, so a hex is drift. |
| 9 | the shipped mark is what mark.mjs computes from the model | The logo is a rendering of the densification curve; if the model moves and the mark does not, it has become a drawing of one. |
| 10 | no canonical, og:image or twitter:card while brand.hostRegistered is false | A canonical pointing at a name that does not resolve kills the link card for every unfurler while the browser looks fine. |
| 11 | no twitter:site tag without a handle in brand.js | A sibling shipped a plausible handle nobody owned and credited its cards to a stranger. |
| 12 | every contract property held and every sabotage behaved as declared | A sabotage that passes is a hole in the suite, not a working contract. |
| 15 | reveal-on-scroll is scoped to .js and the class is set before any stylesheet | Unscoped, the rule hides the entire document from anyone without JavaScript. |
| 18 | every word in the lexicon appears on /stratigraphy with its justification | The site claims each product noun is a real term used for the thing it names. That claim is checkable, so it is checked. |
| 19 | no page asserts a deployment | Nothing is deployed. A sibling had a hero saying "v1 live" two screens from a page saying nothing was. |
| 24 | the site names exactly one chain | The hero said "Built on Robinhood Chain" while eleven of thirteen pages talked about Base — a whole half of the site left pointing at the chain it used to be built for. Nothing static caught it because every individual page was internally consistent. |
| 23 | the app's own calldata executed on chain | The contract suite proves Core.sol; it says nothing about whether the page encodes the right bytes. A wrong constructor argument or a wrong approve spender reverts nothing and breaks everything. |
| 22 | the modelled site is defined exactly once | It was defined twice — in the hero and in the mark — which is a constant with two values waiting to happen. The logo would have gone on drawing a column the figures no longer drew, silently. |
| 21 | no page states a count that the build computes differently | A page said one count of the numbers checked against the paper and the model carried another. The prose is wrong before the code is, and only a machine notices. |
| 20 | every check in this catalogue actually ran | The failure mode that hides: a check that silently stops executing looks exactly like a check that passes. |