The 30-second summary
Cloudflare's randomness beacon is a public drand endpoint, served from Cloudflare's edge. Every drand round (60 seconds for the legacy beacon, ~3s for the quicknet network) you get one 32-byte value that nobody could have biased and that everyone else sees at the same time.
Provable.io is a different shape: it's a per-call API where you bring your clientSeed and get a draw whose generation you can prove after the fact. Cloudflare's beacon gives you "the global random number for this round"; Provable.io gives you "your private draw with a published proof."
Feature matrix
| Capability | Provable.io | Cloudflare beacon (drand) |
|---|---|---|
| Model | Per-call commit-reveal | Public round-based beacon (drand) |
| Trust assumption | Server publishes serverHash before draw | Threshold of drand network is honest |
| Round cadence | On demand | Every round (e.g. 3s) |
| Same value for everyone? | No — per-call | Yes — one global value per round |
| Latency | ~tens of ms | Sub-second once the round publishes; wait for the next round if early |
| Game primitives | dice, shuffle, weighted pick, bytes, distributions | Raw 32-byte value per round |
| Per-user draws | Native | You'd derive locally from the beacon value |
| Best for | Per-user draws, raffles, A/B buckets, shuffles | Cross-system coordination, anchoring to a global tick |
When Cloudflare's beacon is the right answer
Reach for the beacon when "everyone sees the same number" is part of the spec:
- Lotteries with a public, predictable schedule. Pick the round at 2026-06-01 00:00:00 UTC; everyone can fetch it.
- Anchoring off-chain or on-chain state to a value no participant could have biased.
- Distributed protocols that need a common coin.
When Provable.io is the right answer
Most app-level draws are per-user, on-demand, and need richer primitives than "32 raw bytes per round." Use Provable.io when:
- Each user gets their own draw — gacha, deck shuffles, per-entry raffles. See card shuffler.
- You can't wait for the next round. Real-time game servers need sub-50ms latency; see streaming.
- You need higher-level primitives like
NdMdice or weighted pick. See dice & coins.
Try it now
Per-call, on-demand, with a published proof — no waiting for the next beacon round.
curl "https://api.provable.io/api/ints?clientSeed=vs-cf-beacon-demo&count=1&min=1&max=1000"
FAQ
Should I use the Cloudflare beacon as my clientSeed?
Yes, that's a great composition. Use a future beacon round as your clientSeed: neither side controls it, and the result is verifiable against both Cloudflare's beacon and Provable.io's seed flow.
Is this the same as drand?
Cloudflare operates one of the drand endpoints. The protocol is drand; the endpoint is Cloudflare. See the general drand comparison too.
Does the beacon cost anything?
No — it's a free public service from Cloudflare.