Ledger
Every seal, result and late check, in the order written. Each entry’s hash covers the hash of the entry before it, so changing or removing any entry breaks every hash after it. The database refuses edits and deletions.
What it does not prove on its own: that an entry was written when we say it was. That is what the daily Solana anchor above is for — and even it proves only the time, never whether a prediction was right.
Loading…
Check it yourself
1Download the ledger
The endpoint is public and needs no key. It returns up to 1,000 entries at a time; for the next page, set after_seq to the last seq you have.
curl -s "/api/v1/data-tests/ledger?after_seq=0&limit=1000" -o ledger.json
2Know the rule
Each hash is SHA-256 of one line of JSON: the keys at, body, kind, prev and seq, sorted, without spaces, in UTF-8, where body is the entry’s body_text exactly as given. Each prev is the hash of the entry before; the first is 64 zeros.
sha256( {"at":…,"body":<body_text>,"kind":…,"prev":…,"seq":…} )3Recompute it with Python
Python 3, nothing to install. It downloads every page and stops at the first entry that does not add up.
import hashlib, json, urllib.request BASE = "/api/v1/data-tests/ledger" prev, seq = "0" * 64, 0 while True: page = json.load(urllib.request.urlopen(f"{BASE}?after_seq={seq}&limit=1000")) if not page["entries"]: break for e in page["entries"]: record = {"seq": e["seq"], "at": e["at"], "kind": e["kind"], "body": json.loads(e["body_text"]), "prev": e["prev"]} text = json.dumps(record, sort_keys=True, separators=(",", ":"), ensure_ascii=False) assert e["seq"] == seq + 1 and e["prev"] == prev, f"chain breaks at seq {e['seq']}" assert hashlib.sha256(text.encode("utf-8")).hexdigest() == e["hash"], f"hash differs at seq {e['seq']}" prev, seq = e["hash"], e["seq"] print(f"chain intact: {seq} entries, head {prev}")4Or recompute it here
Your browser downloads the same ledger and recomputes every hash with its own SHA-256. Nothing is sent anywhere.