Verify a receipt

Every forecast gets a receipt with a sha256 fingerprint. Paste or upload one here. Your browser recomputes the fingerprint first, then asks the platform whether the same fingerprint is in the ledger.

Your receipt

Result

Nothing checked yet.

How anyone can recompute it

  1. Take the receipt object and remove two keys: submission_sha256 (the answer) and idempotent (a delivery flag).
  2. Write the rest as canonical JSON: keys sorted, no spaces, UTF-8, integers only (temperatures are integer tenths of °C, so there are no floats).
  3. Take sha256 of those bytes. It must equal submission_sha256.
  4. Then check that the hash appears in the round's frozen manifest on the round page. If it does, your forecast was counted exactly as sealed.

The same steps in Python (hash domain M681-ASCIIKEY-INTEGERJSON-1):

import json, hashlib
r = json.load(open("receipt.json", encoding="utf-8"))
body = {k: v for k, v in r.items() if k not in ("submission_sha256", "idempotent")}
canon = json.dumps(body, sort_keys=True, separators=(",", ":"), ensure_ascii=False, allow_nan=False)
print(hashlib.sha256(canon.encode("utf-8")).hexdigest() == r["submission_sha256"])

Your receipt contains no name and no account key. The participant_ref field is an opaque reference, so sharing a receipt for checking does not reveal who you are.