qamble
How the randomness works
Last updated: 24 September 2026
qamble doesn't use software randomness. Every decision uses bits from a hardware quantum random number generator.
Where the bits come from
The server buys entropy from a hardware quantum random number generator (a QRNG) in small fetches. Each fetch is stored as a bundle: the raw payload, its SHA-256 hash, the source, and a timestamp. Bits leave a bundle only as blocks, which are signed ranges assigned to one device. A block's signature covers the hash of its bits and the bundle it came from, so every bit is traceable from fetch to bundle to block to decision.
Picking an option, without bias
Choosing one of N options takes log₂ N bits, rounded up. qamble uses rejection sampling, not modulo. With three choices and two bits, the value 11 can't be divided evenly, so it's discarded and redrawn. Modulo would fold it onto the first option and bias every three-way decision toward it. The response includes the discarded draws, so you can see this happening.
No fake randomness
If the entropy pool runs out and the source is unreachable, qamble refuses the draw instead of falling back to Math.random().
Decisions work offline
Signed blocks are delivered to your device in advance, so you can decide in airplane mode. Each decision uses block bits in order and is recorded in a hash chain. On sync, the server re-derives each draw from its own copy of the bits and only accepts a claim that reproduces it exactly. Editing app data can't inflate a balance or forge an outcome.