What does "verified" mean here?
Verified means we replayed the draw with the revealed serverSeed: it hashes to the serverHash committed before the draw, and it reproduces the recorded result. Until the seed is revealed (rotate the client seed with POST /api/rotate), the verifier can only confirm the commitment and shows Committed.
How verification works
Every Provable.io response carries three things you need to keep: a clientSeed (your input), a serverHash (our pre-commitment), and a shortId (a permalink to the outcome). When you submit those values here, the verifier:
- Looks up the original seed state we stored for your
clientSeed. - Confirms the
serverHashyou pasted is the one we committed to before generating any outcome for that seed. - Returns the list of outcomes that share that seed/hash pair, so you can share a permalink to the exact one in question.
Want to verify without trusting our server? Use the open-source @provableio/provable-core library or the provably fair calculator, which reproduce the exact byte stream from a clientSeed + revealed serverSeed. For day-scale auditing, the /transparency page lets you check inclusion proofs against the daily Merkle root.
A deeper explainer — HMAC-SHA256 mixing, commit-reveal, Merkle roots, signed webhooks — lives at /security →
Where do I find these values?
Every response from /api/floats, /api/ints, /api/dice, and other RNG endpoints includes clientSeed, serverHash, and a shortId. Save them when you make the request — they are the receipt. Account holders can also browse outcomes on the dashboard and copy the values directly.
If you only have the shortId, paste it into a URL like https://provable.io/o/<shortId> to land on the outcome's permalink page.
Don't have a shortId? Browse the recently shared outcomes wall → for real examples you can click straight through to.