Verifiable randomness · XRPL mainnet

Randomness you can prove on XRP Ledger

Provably delivers cryptographically fair winner selection for XRPL raffles, NFT mints, and giveaways — anchored on-ledger, replayable by anyone, with no smart contracts and no oracle gas.

XRPL mainnet
On-ledger commit memos
Zero gas
No EVM contracts required
Open verify
Anyone reruns the math

Three independent entropy sources

S
Server seed Secret until reveal · hash committed first
L
Ledger hash Future XRPL ledger · unpredictable at commit
E
Entry set hash Locked entrant list · no post-hoc edits
finalEntropy = SHA256(serverSeed ‖ ledgerHash ‖ entrySetHash)

How Provably works

Like Chainlink VRF, randomness is requested before the outcome matters and verified after — but Provably runs natively on XRPL using ledger-close entropy instead of cross-chain oracle callbacks.

01 · COMMIT

Lock the commitment

Provably generates a server seed, publishes only its hash, and anchors that hash on XRPL before entries close and before the entropy ledger exists.

02 · CLOSE

Wait for the ledger

Entries lock. A target XRPL ledger closes. Its hash becomes public entropy nobody could predict at commit time — the XRPL equivalent of waiting for a block hash.

03 · REVEAL

Reveal and verify

The server seed is revealed. Anyone independently reruns Fisher-Yates selection and gets the same winner — or catches a cheat instantly.

Built for XRPL, not ported from EVM

Chainlink VRF solves randomness on Ethereum and L2s. Provably solves it where XRPL projects actually live.

Chainlink VRF Provably
Network EVM chains (ETH, Polygon, …) XRPL mainnet
Smart contracts Required Not required
Public entropy Block hash via oracle XRPL ledger hash
On-ledger proof Contract events Commit / reveal memos
Independent verify Yes Yes — open source verifier
Gas per draw LINK + gas fees ~2 drops (memo txs) + $WAFFL

Trust tiers

Tier 1 is live today on the Provably API (mainnet). Tier 2 multiparty seeds are on the roadmap — same verifier philosophy, stronger operator resistance.

Tier 2 · Next phase Not in API yet · planned

No single party

"No single party can manipulate this draw"

  • Multiple independent contributors commit seed hashes
  • Combined server seed = verified hash of all reveals
  • Catches operator-only seed substitution
  • Same idea as drand / League of Entropy

Two API calls. That's the integration.

Your app never touches randomness logic. Commit when the raffle opens, reveal when it closes, post the verify URL with the winner.

api.provably.waffl.fun
// Drop-in client — same pattern as Chainlink VRF request/fulfill
const { ProvablyClient } = require('provably/src/client');
const provably = new ProvablyClient({
  apiKey: 'pb_live_…',
  baseUrl: 'https://api.provably.waffl.fun',
});

// When your raffle opens — lock the commitment
const { drawId } = await provably.commit({ winnerCount: 1 });

// When your raffle closes — reveal winner + proof
const entries = raffle.entrants.map(e => e.wallet);
const { winners, verifyUrl } = await provably.reveal(drawId, entries);

console.log(`Winner: ${winners[0]} — verify: ${verifyUrl}`);

Use cases on XRPL

Any project that picks a winner from a list and needs to prove they didn't rig it.

Token & XRP raffles

Ticket-based draws with destination tags — prove the winner after the pool closes.

NFT giveaways

Fair winner selection for XLS-20 collections without custom contract logic.

Partner embeds

Launchpads and community sites run provably fair draws via the WAFFL embed API.

Holder snapshots

Lock a holder list hash, draw from it, publish a verify link with the result.

Allowlist spots

Random allocation of whitelist slots with an auditable proof.

Community games

Any XRPL app that needs unbiased randomness without building crypto from scratch.

Public verification tools

Don't trust the operator. Don't trust Provably's server. Run the check yourself.

Simple pricing

Prepaid $WAFFL balance — fund once, draw as needed. Each commit debits your account (Tier 1 draws today).

1200 $WAFFL / draw

Per commit (winner selection). Reveal + public verify URL included.

  • Commit + reveal + on-ledger XRPL anchor memos
  • Independent open-source verifier + browser verify page
  • Tier 1 live · Tier 2 multiparty seed in a future release
Fund your account
Send $WAFFL to the treasury address we give you with your API key. Put your full API key in the payment memo — nothing else required:
pb_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Example: 12,000 $WAFFL → 10 draws at the current rate.
Request partner access

FAQ

Do I need smart contracts on XRPL?

No. XRPL has no general-purpose smart contracts. Provably uses commit-reveal memos, ledger-close entropy, and deterministic selection — all verifiable off-chain and anchored on-ledger.

How is this different from Chainlink VRF?

Chainlink VRF delivers randomness to EVM contracts via oracle callbacks. Provably delivers the same guarantee to XRPL projects using ledger hashes instead of block callbacks, with no contract deployment.

Can I verify without trusting WAFFL?

Yes. The verifier shares no state with our servers. Download the proof, run node src/verifier.js proof.json, or use the public verify page.

Does this change my existing WAFFL raffles?

No. Provably is a standalone service. Your live raffles keep working exactly as they do today until you opt in per campaign.

Which tier is live?

Tier 1 only. Commit-reveal, three entropy inputs, Fisher-Yates selection, and public verification are on mainnet today. Tier 2 (multiparty seed contributors) is planned for a later phase — not available in the API yet.

How do I pay for draws?

We issue a pb_live_… API key. Send $WAFFL to your assigned treasury address with that key in the transaction memo. Each commit costs 1200 $WAFFL from your prepaid balance.

What is Tier 2 distributed seed?

Next phase. Multiple independent parties would each commit a seed hash before the draw; the combined seed would be verified from all reveals — so no single operator, including WAFFL, could pick the seed alone. Same direction as drand / League of Entropy, not shipped yet.