The Morning Slate · Verifier
Verify a prediction
Recompute the SHA-256 hash of any prediction we've published. The hash math runs in your browser — we never receive what you compute. If you arrived via a prediction <code>?id=</code> link, your browser also fetches that prediction's canonical fields from our public dataset to populate the form; the hash computation itself never leaves your machine. You can also do it yourself, fully offline, with the snippets below.
The slate composition
- Slate date (UTC)
- 2026-09-04
- Schema version
- almanac-slate-v1
- Slate hash version
- v1
- Computed at (UTC)
- 2026-09-04T06:00:00.521Z
- Trigger event
- auto_publish
- Triggered by
- cron
- Member count
- 6
- Members (position, prediction ID)
- #1 cm420af36c2c4be2cfd33744ab
- #2 cm7295ac9398ac6f9b576561ab
- #3 cm0a419a11f39e74d32e7b06ab
- #4 cmbf540ede0191e9e2bae43aab
- #5 cmd6143c667232553eecb724ab
- #6 cm1f77bf260504bbe93ccacaab
Live recomputation
(Verification will appear here once data is provided.)
Don't trust us, do it yourself
// Recompute the SHA-256 of this prediction's canonical input.
import { createHash } from "node:crypto";
const canonical =
`{"members":[{"predictionId":"cm420af36c2c4be2cfd33744ab","slatePosition":1},{"predictionId":"cm7295ac9398ac6f9b576561ab","slatePosition":2},{"predictionId":"cm0a419a11f39e74d32e7b06ab","slatePosition":3},{"predictionId":"cmbf540ede0191e9e2bae43aab","slatePosition":4},{"predictionId":"cmd6143c667232553eecb724ab","slatePosition":5},{"predictionId":"cm1f77bf260504bbe93ccacaab","slatePosition":6}],"schemaVersion":"almanac-slate-v1","slateDate":"2026-09-04"}`;
const computed = createHash("sha256").update(canonical, "utf8").digest("hex");
console.log("computed:", computed);
console.log("expected:", "9769f2837c5995ef4536fd743b37c37a3db202967f981868c7f3d1f60a85f061");
console.log("match: ", computed === "9769f2837c5995ef4536fd743b37c37a3db202967f981868c7f3d1f60a85f061");These snippets recompute the slate hash from its canonical payload. Same SHA-256 algorithm as per-prediction hashes — the inputs are just (schemaVersion, slateDate, ordered prediction IDs).