Quantum LDPC decoding.
The syndrome, decoded and signed, in your browser.
Decode the errors an error-correcting code reports, the same way on every machine.
A fault-tolerant machine runs a classical decoder in its innermost loop: every syndrome round must become a correction, fast and cheap enough to keep up with the code cycle. For the high-rate quantum LDPC codes, which keep many logical qubits in few physical ones, the decoder is belief propagation — and plain BP fails on quantum codes, trapped by their stabilizer degeneracy and short Tanner-graph cycles. The fix is Relay-BP: an ensemble of BP passes with disordered per-node memory, relayed from one another, that breaks the symmetry.
Here it is in pure integer Rust (normalized min-sum — no float, no tanh), so a
decode is byte-identical on every machine and the correction is a portable hash. Each decode
seals a signed wai.quantum.decode receipt with a joules-per-decode slot. Scope:
simulated syndromes, with no device attached; in this tab the energy slot is left unmetered.
Toric code · decode a syndrome
Bivariate-bicycle qLDPC · [[72,12]]
Relay-BP vs plain BP · logical error rate, gross code
A decode you can put in an auditor's hands, with a joules-per-decode slot
The toric panel decodes a bit-flip syndrome on the canonical topological code: red edges are the
true error, green the decoder's correction, and the badge is green only when the residual is a
product of stabilizers — a logical success, not merely a satisfied syndrome. The gross-code
panel does the same on a real high-rate [[72,12]] bivariate-bicycle qLDPC code. The Monte
Carlo panel shows the point of relay: over identical error samples, Relay-BP's logical error
rate sits below plain BP's across the whole range — the disordered-memory legs recover decodes
plain BP leaves failed. Every decode hashes identically on every machine (no float in the
decoder) and carries a signed receipt binding (check-matrix hash, syndrome hash,
decoder params) → (correction hash, converged, work, joules): the classical decode layer,
content-addressed and budget-gated, with a slot for the energy per decode.
Where it lives. The engine is reference code in the open-standards repo, Apache-2.0. Energy: not metered. The receipt sealed here fills its joules-per-decode slot with a placeholder, the message count times a declared constant, so the page shows none.