How the draw works

Anyone can check any winner. We lock in the result before a giveaway starts and prove it after it ends.

  1. 1We pick a secret seedA random 64-character code, created before the giveaway starts.
  2. 2We publish its fingerprintThe SHA-256 hash of the seed is shown on the giveaway from the start. Changing the seed later would change the hash.
  3. 3Entries closeWhen the timer ends, the total number of entries is fixed.
  4. 4We reveal the seedThe seed and the entry count decide the winning ticket. Anyone can recompute it.

The formula

hash   = SHA256(seed)            // must match the hash shown before the draw
mac    = HMAC_SHA256(key = seed, message = giveawayId + ":" + totalEntries)
ticket = (first 13 hex characters of mac, as a number) mod totalEntries + 1

// Skin giveaways: ticket k is the k-th entry, in the order people entered.
// Hourly draws: giveawayId = "hourly-<hour number>", and each player holds as many tickets as entries,
// in user order. If that player already won 3 times that day, the next ticket wins.

Verify a finished giveaway

The check runs in your own browser. Tickets are numbered in the order entries were made.