/

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.