Every winner in Raflux is determined using Chainlink VRF (Verifiable Random Function) — a cryptographically secure randomness source that ensures results can’t be manipulated.
🧠 What is VRF?
Chainlink VRF provides a provably random number generated off-chain and verified on-chain using a cryptographic proof.
This ensures:
🧾 Fairness — no one can predict or influence the result.
🔍 Transparency — anyone can verify the winning ticket and VRF response.
🔒 Security — randomness cannot be reused or modified once committed.
🧩 When VRF is Used in Raflux
After a raffle ends:
The RaffleManager contract requests randomness from Chainlink.
VRF generates a random number and returns it to the contract via callback.
The contract calculates the winning ticket ID
The winning ticket’s owner is set as the winner for that raffle.
⚙️ All of this happens automatically — no human involvement.
🪄 Step-by-Step: How to Verify Winner
Follow these steps using BaseScan (Base Etherscan):
1️⃣ Open the Tx Hash from “Rolled Item” on BaseScan
After a raffle finishes rolling, open the transaction hash (Tx Hash) linked to that Rolled Item in the Raflux dashboard.
This is the transaction that called Chainlink VRF and finalized the raffle draw.
💡 You can find this Tx Hash in the Raffle Detail page under Result.
2️⃣ Open the Logs Tab
Once inside the transaction page, click the Logs tab (next to Overview).
This tab displays every on-chain event emitted during that transaction.
3️⃣ Check the Transaction Receipt Event Logs
Look for an event named:
🧩 The pool and vrfConsumer address is the addresses you’ll need for the next step.
4️⃣ Copy the vrfConsumer and pool Addresses
Field
Purpose
vrfConsumer
Contract that stores VRF results (where you’ll query the winner).
pool
The specific raffle’s pool address (used as input for query).
5️⃣ Open the VRF Consumer Contract
Go to BaseScan and open the vrfConsumer contract address you copied.
This contract holds the official VRF results verified and fulfilled by Chainlink.
6️⃣ Open the Contract → Read Contract Tab
Inside the Contract tab, select “Read Contract”.
This allows you to view public on-chain data without sending a transaction.
🔓 No gas or wallet connection is required to read this data.
7️⃣ Find the results Function
Scroll down the list of available functions and locate:
This function returns the winner address for a specific raffle.
8️⃣ Paste the Pool (Raffle) Address
Paste the pool address (from Step 4) into the input box.
9️⃣ Click Query
Press the Query button to execute a read-only call.
🎉 That’s your verified winner address — fetched directly from the blockchain, confirmed by Chainlink VRF.