No purchase necessary. Enter free by mail — same odds as a paid entry. How free entry works
Da El Palo PR
Back to winners
Verify a draw

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.

RAFFLE #1

Winning ticket 1-0000002

Drawn from 2 tickets at equal odds.

Verified

How this draw was run

  1. 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.

    c1c5d625a654568e958c48860ea2a5bc5e973ef74e68986cb91d0a891084bd55
  2. Seed 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.

    ca6f6a1c0eca820125f98411e73ef6956aaeb241ef0fd5a784281b0e90035b01
  3. Public 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-0001
  4. Winner 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 tickets
  5. Winning 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
Recompute it yourself

The checks below run entirely in your browser with the public values above. We take nothing on trust from our own server.

Seed commitment matches
SHA-256(server_seed) == seed_hash
Hashing the revealed seed and comparing to the hash published before the draw.
Winning index reproduces
int(HMAC_SHA256(server_seed, entropy_value), 16) % total_tickets == winner_index
Re-deriving the winner from the public entropy and revealed seed.
Verifying in your browser…

Computed locally with your browser’s Web Crypto (SHA-256 and HMAC-SHA256). No result is taken from our server on trust.

Public values
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
Algorithm
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