On-chain proof
of who won.
Trust is a resource. VRE helps you earn it: commit rules on-chain before the draw — anyone replays the result from a transaction signature and verifies it themselves.
-
commitlocked
-
settledrawn
-
replayrerun
Commit rules. Anyone verifies.
Rules are locked on-chain before the draw. After resolution, anyone — users, auditors, regulators — can replay the outcome from a transaction signature and confirm it matches.
Rules locked before the draw
Participant list, weights, and selection function are committed on-chain before resolution. No retroactive edits.
Independently replayable
Any observer replays the outcome from public RPC data. Deterministic. Reproducible. No privileged access.
One npm package
Draw over HTTP with a partner key; check any result with vre verify or verifyOutcome() from the same package. Node 18+.
Drop-in for any dApp
Raffles, rewards, leaderboards, loot tables, ticket draws and prediction slips. Use-case-neutral primitives, not a closed box.
Same engine. Four live proofs.
Every example below is a real transaction on Solana devnet. Their signatures are on /play; paste any into /verify.
Rewards selection
Raffles and airdrops share one primitive: pick one or N recipients from a committed weighted address list.
Trading competition
Native rank_desc formula. Highest committed scores win, with deterministic tie-break by input order.
Prediction market
Native closest_to formula. Predictions nearest the committed target win and replay exposes target and scores.
Loot
Weighted outcome tables with the same replay flow: every slot and weight is committed before the draw.
Commit, settle, verify.
Three on-chain events. Anyone can reproduce every step from public data.
Every signature is reproducible from an RPC endpoint and the artifact hash. The operator cannot change the rules after the commit or know the winners before the target slots exist. What each path does not prove is in the spec.