Transparency

Daily Merkle Roots

Every UTC night we publish a Merkle root over every outcome generated that day. The root is append-only — a single byte changed in any past outcome would shift the root and break every inclusion proof for that day.

How the scheme works

For each UTC day we collect every recorded outcome, sort them deterministically by (clientSeed, cursor, nonce), hash each one into a leaf, and combine pairs upward with SHA-256 until a single root remains. The root is then written to daily_merkle_roots with a publish timestamp.

A full reference is in the API reference, and the security overview walks through how the daily root fits into the rest of the verification chain. You can fetch any day's root at GET /api/merkle/:date and an inclusion proof at GET /api/merkle/:date/proof/:outcomeId.

Published roots (last 30 days)

UTC dateLeavesHeightRootPublished
Loading…

Verify an inclusion proof

Paste the JSON returned by GET /api/merkle/:date/proof/:outcomeId. We recompute the root in your browser from the leaf and siblings and compare it to the published root — no server roundtrip is needed.