I would appreciate if you could share these pages with friends, bookmark them, or link to them. Thank you! 🙏

Verify a Random Draw

Acrafto Team Security
Updated

Paste a certificate code to check it.

Everything runs in your browser. No number ever leaves your device.

What this tool checks

Someone ran a draw and gave you a certificate code. This page tells you whether that code is internally consistent — whether the numbers really come from the seed the organiser published, and whether the fingerprint really covers that seed and those settings.

Everything runs in your browser. The certificate is never sent anywhere.

The two checks

Fingerprint. The certificate carries a SHA-256 hash over the seed and the draw settings. This page recomputes that hash. If it does not match the one stored in the certificate, the seed or the settings were altered after the commitment was made.

Replay. The seeded generator is fully deterministic, so the same seed and the same settings always produce the same numbers. This page reruns the draw and compares. If the numbers differ, the result was edited.

A certificate passes only when both checks pass.

What a passing check does and does not prove

It proves the organiser did not quietly change the seed, the settings, or the numbers after committing to them.

It does not prove the seed was unpredictable. If the organiser picked the seed themselves and never published the fingerprint before drawing, they could have tried many seeds and kept the one they liked. The fingerprint only means something when it was published before the draw, somewhere with a timestamp — a post, a comment, a message.

That is the whole point of the commit step: it turns “trust me” into something anyone can check afterwards.

Running a draw people can verify

  1. Set your range and how many numbers you need.
  2. Press Create fingerprint. Publish the hash you get — in the giveaway post, in a comment, wherever entrants can see it with a timestamp.
  3. Close entries, then draw.
  4. Publish the seed and the certificate. Anyone can paste it here.

Skipping step 2 makes the certificate decorative. Publishing the fingerprint first is what gives it weight.

Why a seed alone is not enough

A seed is just text. It only produces numbers once you know how it was expanded into them — which algorithm, which range, how many numbers, whether repeats were allowed.

That is why the fingerprint covers the seed and the settings. Without it, an organiser could publish a seed, then claim afterwards that the draw ran over a different range and that some other set of numbers was the real result. The commitment closes that door.

What a fingerprint cannot be forged into

A SHA-256 hash is a one-way function: easy to compute forwards, and with no known way to run backwards. That is what makes the commitment binding.

To cheat, an organiser would need to publish one fingerprint and later reveal a different seed that produces the same hash — a second-preimage attack. Nobody has found one against SHA-256, and the search space makes brute force meaningless: 2²⁵⁶ is more than the estimated number of atoms in the observable universe.

What they also cannot do is nudge the outcome. Changing a single character of the seed changes roughly half the bits of the hash, unpredictably. There is no way to search for a seed that both matches a published fingerprint and produces a convenient winner, because you would have to fix the hash first and the hash depends on everything.

So the fingerprint pins down the seed and the settings completely. The only thing it cannot pin down is when it was published — which is why the timestamp on your post is doing half the work.

Where verifiable draws matter

  • Giveaways and competitions — entrants who did not win are the ones who ask
  • Community and DAO selection — picking who gets a slot, a grant, a role
  • Research — a sampling plan a reviewer can rerun and confirm
  • Prize promotions with legal exposure — some jurisdictions require a demonstrable method, not just an assertion
  • Anything a stranger has to believe — the further the audience, the less “we picked randomly” is worth on its own

Frequently asked questions (FAQ)

Does a valid certificate mean the draw was random? It means the draw was not altered after the commitment. Whether it was unpredictable depends on when the fingerprint was published. Published before the draw, in public, with a timestamp — then yes, the organiser was locked in. Published afterwards, it proves nothing about predictability.
Is my certificate uploaded anywhere? No. The check runs entirely in your browser, in JavaScript. Nothing leaves your device, and there is no server that could log it.
What does "the fingerprint does not match" mean? The seed or the settings in the certificate are not the ones that were committed to. Somebody edited the certificate, or it was generated by a different tool.
What does "the seed does not produce these numbers" mean? The fingerprint is intact, but the list of numbers was changed afterwards. The tool shows you the numbers the seed actually produces, so you can see the difference.
Can I verify a draw from another website? Only if it produced a certificate in this format. The check depends on the exact generator algorithm — a seed alone is meaningless without knowing how it was expanded into numbers.
What if the certificate is very long? Length depends on how many numbers were drawn, because the certificate carries the full result. A draw of six numbers gives a short code; a draw of ten thousand gives a long one. Both verify the same way.