
Winning ticket #38
Drawn 11 Jul 2026, 18:16 BST
40 of 50 tickets sold
Free postal entry is available for this competition. Postal entries are included in the same draw as paid tickets and must meet the same eligibility requirements — including answering the qualifying question under “How to enter” in “Competition details”.
7a000186036bb399e398a22f4f93a2661db73b41c3f7f53a690745bdf9c26ff08e9c881fe117f2cf699a96522fc095fd3099fb4ca2afa9b889d31a2ebb9d93c0The winner is derived only from the public values above — no hidden inputs. The platform commits to the ticket pool (pool hash) before the draw, then reveals the random seed afterwards. The winning ticket index is:
SHA-256("v1|draw|" + seed + "|" + pool hash) → first 8 bytes as a big-endian integer → mod tickets sold
// Node.js — reproduces the published winning ticket index from public proof.
const { createHash } = require('node:crypto')
const seed = '8e9c881fe117f2cf699a96522fc095fd3099fb4ca2afa9b889d31a2ebb9d93c0' // revealed 32-byte seed
const poolHash = '7a000186036bb399e398a22f4f93a2661db73b41c3f7f53a690745bdf9c26ff0' // published commitment to the ticket pool
const ticketsSold = 40
const drawHash = createHash('sha256').update(`v1|draw|${seed}|${poolHash}`).digest()
const winningIndex = Number(drawHash.readBigUInt64BE(0) % BigInt(ticketsSold))
console.log(winningIndex) // must equal the published winning index shown aboveSee how draws work for the full method.