cricket
Use

Proof format

A finished draw yields a proof that stands alone. Everything needed to re-run it is inside.

{
  "v": 1,
  "chain": "52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",
  "round": 33091500,
  "signature": "a2960ced8cbf...",     // 48 bytes, hex, as published by drand
  "listHash": "0x...",                // sha256("cricket.list.v1\n" + entries joined by \n)
  "entries": ["ada", "grace", "..."],
  "winners": 2,
  "seed": "0x...",                    // sha256("cricket.v1" || randomness || listHash)
  "result": [3, 0]                    // indexes into entries, in drawing order
}

How it is checked

  1. The chain hash is quicknet's.
  2. The list hash is recomputed from entries and must match.
  3. The signature is verified for round against the network key.
  4. The randomness is sha256(signature), the seed is recomputed and must match.
  5. The winners are recomputed from the seed and must equal result.

The "Check a proof" box on the draw page runs exactly these steps. The same function (checkProof) is what the page uses on its own results.

What a proof does not show

That the round was chosen in advance. The proof contains the round, not the date you decided on it. That is why the commitment must be published separately before the round, or made on chain.

ROUND --
next --
$CRICKET 0xb11e...bb13 X