Draft page. The event, the names and the random value are samples.
Aperture Pro giveaway: 5 promo codes
Tickmark · Giveaway
5 people from the Reddit thread get Aperture Pro, a camera lens on your wrist, as a Google Play code. A public random number picked them, so we couldn't choose them, and anyone can check the result.
Tap or click a part, or a step below, to look inside. Drag to move, pinch or Ctrl+scroll to zoom.
Every step is public
The machine shows the draw as it happened. Each step has an input you can read and an output you can recompute on this page.
The list is locked before the random number exists, so neither one can be adjusted to fit the other.
Winners
Smallest score first. If a winner does not reply within 7 days, the code goes to the next reserve.
- 1u/wristcheckwedscore 017dc6cb8af0b2fc34…Code sent
- 2u/frost_lume51score 03a8fabd9a1c6db0e0…Code sent
- 3u/hazel_orbit61score 042cc563d7a2956ad2…Code sent
- 4u/brightsundialscore 043e8bce8b23d72a3b…Code sent
- 5u/brisk_glow17score 0523e797c70e6ed2ce…Waiting for reply
Check it yourself
Runs in your browser. Paste the list and the signature from the drand round page, and you get the same winners.
The same check in Node, no packages
// node draw.mjs <signature or randomness> <winners> < entrants.txt
import { createHash } from "node:crypto";
import { readFileSync } from "node:fs";
const [v, n] = [process.argv[2].trim().toLowerCase(), Number(process.argv[3])];
const sha = (s) => createHash("sha256").update(s).digest("hex");
// a 96-hex quicknet signature: the randomness is SHA-256 of its bytes
const r = v.length === 96 ? createHash("sha256").update(Buffer.from(v, "hex")).digest("hex") : v;
const names = [...new Set(readFileSync(0, "utf8").split(/\r?\n/)
.map((s) => s.trim().toLowerCase()).filter(Boolean))].sort();
console.log("list", sha(names.join("\n")));
names.map((u) => [sha(`${r}:${u}`), u]).sort()
.forEach(([h, u], i) => console.log(i + 1, i < n ? "WIN" : " ", u, h));Rules
- To enter: leave a top-level comment in the Reddit thread before the deadline. Nothing to buy.
- One entry per account. Accounts less than 30 days old at the deadline, and comments deleted before the deadline, are not in the list.
- No review needed. Rating or reviewing the app on Google Play does not change your chances, and we never ask for it.
- Prize: one Google Play promo code for Aperture Pro, a watch face for Wear OS 5 or later, sent by Reddit message.
- Winners have 7 days to reply. After that the code goes to the next reserve.