✓ Signature verified
Committed 18:15:40 · Drawn 18:15:55 · Signed by Random.org
Verifiable draw
Win Airpods Pro
Our draws are made through Random.org's signed API. The full ticket pool is committed before the draw — then, at the draw itself, Random.org generates the winning number and cryptographically signs the result. This proof is published in full, so you can check the outcome yourself.
The result
Winning ticket
#00109
Winner
Max F
Signed random value
33 (range 1–90)
Mapping
value 33 → index 32 (value − 1) → 90 entrants in ascending ticket order → ticket #00109
Drawn at
2026-07-30T18:15:55+00:00
The cryptographic proof
ticket 20807e1286b9481fCommitted 18:15:40 · Drawn 18:15:55
Random.org ticket
20807e1286b9481f
Look this ticket up on Random.org: its creation time (the commit) is before its used time (the draw) — proof the draw was locked in before the number existed. Single-use, so it can't be re-rolled.
Committed at
2026-07-30T18:15:40+00:00
Public key hash
8bByyaWUon6tpjMOsnVAaEhXjmnxC/pVxztYzAVHn17QRrwlTY27JcP0I4KYC9Xyn8c4/Sp3fpv0ApkoXz3WdA==
Random.org's public SHA-512 hash of our API key — confirms the draw is ours, without exposing our secret key.
Serial number
15
Pool commitment (SHA-256)
d83d0882d9c19a774684c37b61e4c8803014c1436ca16b943f2c1bd86a48dbcf
SHA-256 of
6781843f-f612-4892-9fc1-33bb20ff3d25|90|<all 90 ticket numbers, ascending, comma-separated>. Bound into the signature, so the value is tied to this exact entrant pool.Signature
kmanZAqkyU5i/D3yyUZdakl7T1f77rCi7PXKvwyrWY9PJDLOQ0suQg+SyxoeZSrl0ocQ9g5Db0ZAHQGfg/S5AKlN03ica9buK55JnmWRNrSmWG09S2GCo/cS7E9c8zFLSEIVjZtJCEC388DJnutxFqq26b1iIskRJJkYMgT5Re0hJkmU9gPeKTuz03o9ILuDPvsR/ofw/uzUHPvhafY+MTjlZUmmSBOPsLReZpVvDycLvCV87xuQP2h2dI9xHae6OP9xmQ1S1lOR+OiCn+Uxo0JMArsY5hT3esdoC3+J9x0STer1XXzrcZIGey5icDUfb2dET5uG7af0+NtCaa2lvA0D54eaqtFcjSghCTYr3ga7evIIXHIqDTBpTTcIE6dQ8MPFkDlhiKanzRNs8Le+175KKtteraVH3JqL2W0LpGN2xfTA2x7mo8Q2gd44fnnaPC+In3fXrWj20f1b4vH6DX/79tedCke6B7WooWOzivC1y+9fc1012U5qzixRqqwWhZu8jXFqFT1V8yFHYxLxgpa7kxbdvBoGdr045UBfgayCsVaIeYI5floWjPQAEBEpm84iqb6lm49hBoS9fHOTwXWotU+l399Olb4C/gU8G3YfJE9GEvRXtHC67TRFvEtneQh7GKEYbvQ6Z8BDrpynAQmGwDGGHoegDn8UuL2vhAo=
Show the signed random object (JSON)
{
"method": "generateSignedIntegers",
"hashedApiKey": "8bByyaWUon6tpjMOsnVAaEhXjmnxC/pVxztYzAVHn17QRrwlTY27JcP0I4KYC9Xyn8c4/Sp3fpv0ApkoXz3WdA==",
"n": 1,
"min": 1,
"max": 90,
"replacement": true,
"base": 10,
"pregeneratedRandomization": null,
"data": [
33
],
"license": {
"type": "developer",
"text": "Random values licensed strictly for development and testing only",
"infoUrl": null
},
"licenseData": null,
"userData": {
"competitionId": "6781843f-f612-4892-9fc1-33bb20ff3d25",
"count": 90,
"poolCommitment": "d83d0882d9c19a774684c37b61e4c8803014c1436ca16b943f2c1bd86a48dbcf"
},
"ticketData": {
"ticketId": "20807e1286b9481f",
"previousTicketId": null,
"nextTicketId": "3ddd89f7e41c3263"
},
"completionTime": "2026-07-30 18:15:55Z",
"serialNumber": 15
}Verify on RANDOM.ORG — the official checker
Copy the random object and signature below into random.org's own signature form. It should report authenticity: true.
Show the 90 entrant ticket numbers (ascending)
00003, 00006, 00008, 00009, 00013, 00018, 00019, 00020, 00022, 00027, 00030, 00032, 00035, 00039, 00042, 00044, 00049, 00053, 00054, 00059, 00062, 00067, 00068, 00070, 00071, 00072, 00073, 00075, 00078, 00085, 00105, 00106, 00109, 00114, 00115, 00116, 00117, 00122, 00125, 00126, 00127, 00129, 00130, 00132, 00133, 00136, 00139, 00142, 00144, 00147, 00151, 00153, 00154, 00156, 00159, 00160, 00163, 00167, 00169, 00172, 00175, 00177, 00179, 00181, 00182, 00183, 00189, 00192, 00196, 00198, 00203, 00205, 00206, 00210, 00211, 00218, 00219, 00221, 00222, 00223, 00224, 00226, 00229, 00236, 00237, 00239, 00240, 00243, 00245, 00250
Recompute the pool commitment from these to confirm the list wasn't changed after the draw.
Want to verify it independently? Here's how.
- Open Random.org's signature verification form . Paste the signed random object and the signature above. Random.org confirms it's authentic.
- Look up the ticket on Random.org and check its creation time is before its used time — the draw was committed before the number was revealed.
- Recompute the pool commitment (SHA-256 of the canonical string) from the entrant ticket numbers and confirm it matches the value bound into the signature's
userData. - Confirm the mapping: winning index = value − 1, giving ticket #00109.