Glossary
Short definitions for the terms you'll bump into throughout these docs.
VRF
verifiable random function
A function that produces a random value and a proof that the value was generated correctly. Anyone can verify the proof; only the owner of a secret can produce it.
Commit
first half of commit-reveal
A cryptographic hash of a secret value, published before the secret itself. Binding (the publisher can't change the secret later) and hiding (nobody else learns it yet).
Reveal
second half of commit-reveal
The secret value that matches a previous commit. Anyone can re-hash it and confirm the commit was honest.
Round
one VRF request
The full lifecycle of a single randomness request: request → commit → reveal → finalize. A round takes about four seconds on mainnet.
Quorum
minimum honest nodes
For a DICE round to succeed, at least 4 of 6 nodes must submit valid commits and reveals. One dishonest node is tolerated; the rest cancel it out.
Callback
your program, post-finalize
The Solana instruction the DICE program CPIs into with the finalized randomness. You write this function to consume the 32-byte value.
TRNG
true RNG (hardware)
A physical source of entropy — on the ESP32-S3, it samples thermal noise from an analog circuit. Not derivable from any prior state.
mTLS
mutual TLS
A TLS handshake where both server and client present a certificate. DICE nodes authenticate to the coordinator using a client cert baked into their firmware.
Coordinator
off-chain relayer
Our WebSocket server that routes messages between nodes and Solana. Stateless — it cannot mint randomness or sign, only relay.
Callback seed
replay-protection tag
A short arbitrary string you pick, embedded in each request. Prevents another program from replaying a randomness result against your callback.
ALT
address lookup table
A Solana v0 transaction feature that compresses account lists. DICE uses ALTs to bundle commits + reveals into one transaction.
Streaming VRF
continuous feed
Instead of one-off requests, subscribe to a feed that emits a new random value every N seconds. Handy for games and auction ticks.