Live on Solana devnet

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.

outcome rt_164bb2e4 devnet
  1. commit artifact 11d30b3b · weighted_random
    locked
  2. settle slots 498 395 156 · 172 · 173 · winner 3nafSu…TMFR9
    drawn
  3. replay MVE6v5…FAy5H · from public RPC
    rerun
match
recomputed from public RPC data — same winner, byte for byte
+8 · +16 · +24 future slots per draw
Open verification SDK audit the engine yourself
0 oracles public RPC is the source
Why VRE

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.

Use cases

Same engine. Four live proofs.

Every example below is a real transaction on Solana devnet. Their signatures are on /play; paste any into /verify.

See all examples →

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.

Flow

Commit, settle, verify.

Three on-chain events. Anyone can reproduce every step from public data.

solana devnet
# 1. Send participants — the rules are committed on-chain first $ curl -X POST https://verifiableoutcome.online/api/partner/draw -H "x-api-key: …" -d @raffle.json → artifact 11d30b3b… committed # 2. prepare_rng_v2 fixes three future slots; settle_rng_v2 picks winners from their hashes → target_slots: 498395156, 498395164, 498395172 → outcome_id: 3nafSu…TMFR9 # 3. Anyone — not you — verifies. Public RPC is the source of truth. $ npx -p verifiable-outcome-sdk vre verify --sig MVE6v5…FAy5H ✓ MATCH / OK rules committed before the randomness existed replay of public data reproduces the same winner

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.

Get started

Commit rules, then verify.

Any outcome. Independently verifiable. Start with a devnet signature today; mainnet is planned for this year.