Every entry in this log is hashed together with the one before it. Add entries, then alter or remove one and press Verify — the chain names the first entry that broke.
Not connected yet.
This tab’s copy has been tampered with. Storage still holds the original — to get it back.
genesis = evidence-chain:<log>
chain₀ = SHA-256( genesis | contentHash₀ | canonical(stamp₀) )
chainₙ = SHA-256( chainₙ₋₁ | contentHashₙ | canonical(stampₙ) )
storageAdd appends a version rather than replacing a value,
so the channel keeps every entry ever written — that gives you a log. The hash of each
entry covers the previous entry's hash, which welds the entries into an order — that is
what turns a log into a record.
Neither half is enough alone. Storage without the chain lets somebody hand you a shorter list and call it the whole thing. The chain without storage lets somebody hand you a different list. Together they mean an entry can be added, and nothing else.
Stamps are serialised with sorted keys, so the same entry hashes to the same value on any browser, next year. That is the only reason re-derivation works at all.
This page is the primitive, not a product. Fieldstamp — a remote inspection with a phone camera, capture templates and an exportable report — is built on exactly these four functions, and lives elsewhere.