The Morning Slate

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 prediction

Prediction ID
cmad296d9d12c2af6df7b29aab
Fixture
Paris Saint-Germain vs Monaco (LIGUE1)
Market
OVER_UNDER_GOALS
Selection
UNDER (Under 3.5 goals)
Model probability
0.5701
Edge %
2.14
Drivers
  1. Home Elo advantage: +199 (1845 vs 1646)
  2. Form: home 0.53 / away 0.82
  3. Recent xG avg: home 1.68 / away 1.57
Risk
(none)
Schema version
betclarity-prediction-v2
Published (UTC)
2026-09-01T02:10:07.343Z
Kickoff (UTC)
2026-09-04T19:05:00.000Z

Live recomputation

(Verification will appear here once data is provided.)

Canonical JSON

{"drivers":["Home Elo advantage: +199 (1845 vs 1646)","Form: home 0.53 / away 0.82","Recent xG avg: home 1.68 / away 1.57"],"edgePercent":2.14,"fixtureId":"cmt29vjsn0e4901mvnitrp200","kickoffAt":"2026-09-04T19:05:00.000Z","market":"OVER_UNDER_GOALS","modelProbability":0.5701,"publishedAt":"2026-09-01T02:10:07.343Z","risk":"","schemaVersion":"betclarity-prediction-v2","selection":"UNDER"}

These are the exact bytes we took the SHA-256 of. Copy them into any SHA-256 tool to verify the hash above yourself.

Don't trust us, do it yourself

// Recompute the SHA-256 of this prediction's canonical input.
import { createHash } from "node:crypto";

const canonical =
  `{"drivers":["Home Elo advantage: +199 (1845 vs 1646)","Form: home 0.53 / away 0.82","Recent xG avg: home 1.68 / away 1.57"],"edgePercent":2.14,"fixtureId":"cmt29vjsn0e4901mvnitrp200","kickoffAt":"2026-09-04T19:05:00.000Z","market":"OVER_UNDER_GOALS","modelProbability":0.5701,"publishedAt":"2026-09-01T02:10:07.343Z","risk":"","schemaVersion":"betclarity-prediction-v2","selection":"UNDER"}`;

const computed = createHash("sha256").update(canonical, "utf8").digest("hex");
console.log("computed:", computed);
console.log("expected:", "00df88e8678d00a0590dae827a2b828ab4cab9ad2d16a04ecea0c6099568b8a3");
console.log("match:   ", computed === "00df88e8678d00a0590dae827a2b828ab4cab9ad2d16a04ecea0c6099568b8a3");