Draw verification
Anyone can recompute the winner of this draw. Here is exactly how it was run — and a check that reproduces the result in your own browser.
Winning ticket 1-0000002
Drawn from 2 tickets at equal odds.
How this draw was run
Seed commitment (published at open)
Before the raffle opened we published the SHA-256 hash of a secret server seed. This locked us into one exact seed while revealing nothing about it.
c1c5d625a654568e958c48860ea2a5bc5e973ef74e68986cb91d0a891084bd55Seed revealed (after close)
Once the draw closed we revealed the original server seed. Its SHA-256 hash must match the commitment above — proving we didn't swap it.
ca6f6a1c0eca820125f98411e73ef6956aaeb241ef0fd5a784281b0e90035b01Public entropy
We used a public, unpredictable value we could not control (internal test - deterministic value) to seed the selection. It only existed after the commitment was locked.
internal-test-entropy-0001Winner index derived
The winning index is int(HMAC_SHA256(server_seed, entropy_value), 16) % total_tickets — a deterministic function of the values above.
index 1 of 2 ticketsWinning ticket
The ticket at that ordered position over the full pool — paid and mail-in entries interleaved at equal odds — is the winner.
1-0000002
The checks below run entirely in your browser with the public values above. We take nothing on trust from our own server.
SHA-256(server_seed) == seed_hashint(HMAC_SHA256(server_seed, entropy_value), 16) % total_tickets == winner_indexComputed locally with your browser’s Web Crypto (SHA-256 and HMAC-SHA256). No result is taken from our server on trust.
- Seed hash
- c1c5d625a654568e958c48860ea2a5bc5e973ef74e68986cb91d0a891084bd55
- Server seed
- ca6f6a1c0eca820125f98411e73ef6956aaeb241ef0fd5a784281b0e90035b01
- Entropy source
- internal test - deterministic value
- Entropy value
- internal-test-entropy-0001
- Total tickets
- 2
- Winner index
- 1
- Winning ticket
- 1-0000002
winner_index = int(HMAC_SHA256(server_seed, entropy_value), 16) % total_tickets; SHA256(server_seed) == seed_hash; ticket_pool_hash == SHA256("\n".join(ordered_ticket_numbers)); ordered_ticket_numbers[winner_index] == winning_ticket_number