Giveaways
DRAWN ON THE RECORD

How every draw works

Fair isn’t a promise here. It’s arithmetic. Before entries open we lock in a secret and a future moment of public randomness. At the deadline the entrant list is sealed. Then one published number picks the winner — and anyone, including you, can re-run the exact calculation and land on the same name.

THE THREE INGREDIENTS

Three public facts, one name

The app’s secret

A random secret we generate and immediately fingerprint with SHA-256. The fingerprint is published before entries open; the secret itself is revealed at draw time, so you can confirm we never swapped it.

COMMITMENT (SHA-256)f43ae2…8e1861

The sealed list

At the deadline every entry is sorted and hashed into one root. Nothing can be added, removed, or reordered afterwards without changing that root — so the list you see is the list we drew from.

SEALED LIST ROOT4e5dae…06405c

The world’s dice roll

A drand round: public randomness a league of independent parties produces on a fixed schedule. No one — not even us — can predict or bias it. We commit to the round number before entries open.

DRAND ROUND Nº 30,551,762d85619…bad220
What is drand? ↗
THE FORMULA

The whole calculation

winner = HMAC(secret, dice_roll : sealed_list) mod entries

In plain terms: mix the revealed secret with the public dice roll and the sealed list, turn the result into a number, and count that far down the list. Same three inputs, same winner, every time — on our servers or in your browser.

VERIFY IT YOURSELF

Re-run a real draw, right here

Paste any draw’s serial. We fetch its published values and recompute the winner in your browser — the same verifyDraw() our worker used to record it.

WHAT WE CAN'T DO

The honest limits

We can’t change the list after sealing. The root is published at the deadline; any edit makes it stop matching.

We can’t re-roll.One drand round is committed in advance. If we didn’t like the result, there is no second draw to reach for.

We can’t verify likes.X keeps them private, so a like never decides a draw. If we can’t check a condition, it doesn’t affect your odds.

FAQ

Questions worth asking

Can you see who's going to win before the deadline?

No. The winning number comes from a drand round whose randomness does not exist until after entries close. We commit to that round's number before entries open, so we can't shop for a friendly one either.

Could you swap the secret after seeing the entries?

No. We publish a SHA-256 fingerprint of the secret before entries open. At draw time we reveal the secret itself; anyone can check it still hashes to the fingerprint we committed to. A swapped secret fails that check.

What stops you adding or removing entries after the fact?

At the deadline the full entrant list is sorted, hashed, and its root published. Change one entry — add, remove, or reorder — and the root no longer matches. The verifier catches it.

What is drand, exactly?

A public randomness beacon run by a league of independent organisations. Every few seconds it publishes a new random value with a signature that proves the whole network produced it — no single party, including us, can bias or predict it.

Why isn't 'like the post' a winning condition?

X keeps likes private, so we can't verify them. We never make a condition we can't verify decide your odds — likes are honour-system only, and marked as such.

Do I have to trust your server to believe a result?

No. The verifier on every certificate runs in your browser against the published values. There's also an open-source verifier you can run yourself — same inputs, same name, no server involved.