Verifiable Giveaways

We use a public randomness beacon and a deterministic weighted selection algorithm to select winners. Each participant's chances are proportional to their earned entries based on correct answers. Anyone can reproduce the result using the published inputs.

Algorithm (high level)

  1. Create a snapshot of entry IDs with their weights (earned entries) and compute SHA-256 hash.
  2. Fetch the public beacon value from Cloudflare/drand and record the round.
  3. Derive seed = SHA256(entries_hash + '|' + beacon_value).
  4. Run deterministic weighted selection using HMAC-SHA256 seeded randomness and cumulative weight distribution.
  5. Select N winners based on proportional chances. Publish entries_hash, beacon, seed, total_weight, and winners.

This preserves privacy (no PII published) and enables independent verification without trusting our server.

How Weighting Works

Each participant earns entries based on their performance:

  • Correct answers: Earn giveaway entries (typically 1 per correct answer, but configurable per giveaway)
  • Wrong answers: May earn fewer or no entries (configurable per giveaway)
  • Close answers: For exact score games, near-correct answers may earn partial entries

The selection algorithm ensures that someone with 5 entries has exactly 5× the chance of winning compared to someone with 1 entry, making giveaways fair and rewarding knowledge while still giving everyone a chance.

Completed Giveaways