How Chainlink VRF Proves a Prize Draw Was Fair — a Plain-English Guide
Every prize draw lives or dies on one question: where did the random number come from?
If the answer is "a server you can't see", then fair is a claim. If the answer is "a verifiable random function, delivered and checked on a public blockchain", then fair is a property you can test. This guide explains the second answer — the one ThePrize uses for its on-chain draws — without assuming you know any cryptography.
What "verifiable random function" actually means
A verifiable random function (VRF) produces two things at once:
- a random number, and
- a cryptographic proof that this exact number was derived correctly from a known input.
The proof is the whole point. Ordinary random number generators just hand you a number and ask you to trust the machine that produced it. A VRF hands you the number and the evidence, and anyone can check the evidence without needing access to the machine — or anyone's cooperation.
The request/fulfil flow, step by step
Chainlink VRF v2.5 — the version ThePrize's draw contract uses on Base — works as a two-transaction handshake:
- Request. The draw contract (ThePrizeVRF,
0x640e042fB04DD1b8d5E9B36642D325976F0C4cDDon Base) sends a randomness request. On ThePrize this happens in the same transaction that registers the competition — its name, total tickets, and number of winners are committed on-chain before any randomness exists. - Fulfil. The Chainlink oracle network computes the random words from the request plus a fresh, unpredictable blockchain input, and submits them back with the VRF proof attached.
- On-chain verification. Here's the crucial part: the VRF coordinator contract verifies the proof on-chain before accepting the number. An oracle that submitted a doctored number would simply have its transaction rejected by the mathematics — not by a policy, by the protocol.
- Winner derivation. The draw contract deterministically maps the accepted random words onto ticket numbers. Same words in, same winners out, every time — anyone can recompute it.
Why nobody can cheat — including the operator
Run through the possible attackers:
- The platform (us). ThePrize never generates the number; the request commits the competition parameters first, and the contract only accepts a Chainlink-proven fulfilment. There is no "re-roll" function — the fulfilment is a matter of public record.
- The oracle. Chainlink's proof is bound to the request and to unpredictable chain data. A manipulated output fails on-chain verification.
- A lucky insider watching the mempool. By the time the random words are visible, the ticket list is already fixed on-chain. Knowing the number early doesn't let anyone buy the winning ticket after the fact.
What remains is the honest residue of every random system: randomness is random. A VRF proves the draw wasn't rigged; it doesn't make winning likely. If a site implies otherwise, walk away.
Checking a draw yourself on BaseScan
You need nothing but a browser:
- From a finished ThePrize competition page, open the Proof panel and click the draw transaction — it links to BaseScan, Base's public block explorer.
- Confirm the
toaddress is the ThePrizeVRF contract,0x640e…C4cDD. - Look at the fulfilment: the random words are stored on-chain, along with the winning ticket number(s) the contract derived from them.
- Match the winning ticket number against the winner announced on the site.
If those line up, the draw was fair — not because ThePrize says so, but because you checked. For the wider picture of how this fits into the platform (entry lists, USDC settlement, free entries), see Provably fair prize draws on Base.
Where else the same randomness is used
The same VRF pathway also seals instant-win games before tickets go on sale: a verifiable random seed fixes which ticket numbers win which prize tier in advance, so revealing a ticket only uncovers a result that already existed. That mechanism has its own write-up: USDC instant-win prizes explained.
A note on scope
Verifiability applies to draws executed through the VRF contract — each carries its own BaseScan-linked transaction on the competition's proof panel, and that link is exactly what you should look for. And as always: the blockchain proves the number; delivering the prize is a human promise, which is why USDC payouts publish their own transaction links too.
ThePrize is an 18+ skill-based prize competition platform. No purchase is necessary — every competition has a free postal entry route entered on equal terms. Please play responsibly: gamcare.org.uk.