Provenance · Audit ledger
Cryptographic audit ledger
Every change to the dataset is committed to an append-only, SHA-256 hash-chained log. Each dated entry hashes the entire published dataset and links to the previous entry's head, so altering any past figure — or the order in which we recorded it — breaks every entry after it. Priority of discovery becomes something you can verify, not just trust.
- Chain length
- 140
- Tracking since
- June 2026
- Last entry
- 2026-10-20
- Integrity
- ✓ verified
Current head
The head digest commits to all history before it. Quote it to pin the dataset's exact state on 2026-10-20.
68416918667fc7098e2776f915e0a6e9bd55b76a96bd676aa3457d4f2ddeef32 Verify it yourself
- Download the chain: /data/ledger.jsonl (one JSON entry per line:
d, n, filesHash, prevHash, headHash). - For each entry, recompute
headHash = SHA256(prevHash + ":" + filesHash + ":" + d + ":" + n)and confirm it matches, and that eachprevHashequals the previous entry'sheadHash(the first isGENESIS). - To check the data itself, recompute
filesHash: SHA-256 every.jsonfile underdata/products,data/sections,data/catalog,data/changesanddata/snapshots, plusdata/price-history.jsonl, join aspath:shalines sorted, and SHA-256 the result. The first four stores are flat;data/snapshotsnests one level (data/snapshots/<scope>/<date>.json), so the walk descends into subdirectories. Paths are relative to the repository root, as written here. The build script isscripts/build-ledger.mjs. - The change wire's evidence — the dated captures a move was diffed from, and the change records themselves — joined the digest when the wire started publishing. Adding a store cannot alter an entry already written: each entry keeps the
filesHashit was computed with, so the chain above still verifies end to end, and the new inputs take effect from the first entry appended after the change.
- The chain (NDJSON)
- Price Index — how the data is verified and how large the moat is.
- Corrections log — every fix, dated.