light client · in your tab

Verify a whole history in one proof

A finalized history is a chain of turns: each turn's after-state is the next turn's before-state. Instead of re-executing every turn to trust the result, a producer (a node or relayer that ran the history) folds the whole chain into one succinct recursive proof. A light client (your browser tab, here) then verifies that single proof, re-witnessing nothing: no re-execution, no re-hashing, no walk of the chain. If it verifies, every folded turn executed correctly, in order, from genesis to the final root.

▼ folded once, natively, off the verifier ▼
π ✓
one recursive STARK · what your tab verifies below, re-witnessing nothing

the verification carries the recursion engine's FRI soundness. The verification is the trust.

produce · off the verifier
Fold once
The real k-turn aggregate below was folded natively by the producer: the expensive step, done once. Each leaf is a real EffectVM proof verified in-circuit; the recursion binds the chain.
verify · in your tab
Check cheaply
Your tab runs the real recursion verify over the wire proof, independent of how many turns the history holds. Verification is the light step, and it runs client-side in WebAssembly.
anchor · your config
The anchor is a separate input
The verifier takes the trust anchor as an argument, never off the proof under verification: a proof built for a different circuit cannot pass it. On this page, though, the anchor is served to you by us — it arrives in the same history.json as the proof. So what you are watching is a consistency check, not a trust decision. A real client holds its anchor from genesis/checkpoint configuration.

1 · Verify a real history in your tab

The aggregate below is a real, pre-folded whole-history proof (shipped as a wire envelope). Click Verify and your tab runs the genuine recursion verify against the config anchor, re-witnessing nothing. The carried public commitments (genesis/final root, the ordered-history digest, the turn count) are re-attested against the binding proof.

loading the in-tab verifier and the baked aggregate…

2 · Check it against your own anchor

The anchor is a separate input to the verifier, never taken from the proof it is checking. Verify against the correct anchor and it attests; tamper one hex digit and it is refused outright.

Being straight about what this demo does and does not show. The anchor pre-filled below was fetched from ./history.json — the same file, from the same server, as the proof. So this panel demonstrates that the verifier really does enforce the anchor, which is a genuine property of the code. It does not demonstrate that you avoided trusting us: we handed you both halves. Anchor discipline becomes real when the anchor reaches you out of band — from genesis or a checkpoint you already trusted — and stays fixed while proofs come and go. Paste your own value below if you have one.

Named floor: the verification carries the recursion engine's FRI soundness. If the aggregate verifies under a sound engine, the whole history is attested. This is the executable counterpart of the Lean theorem light_client_verifies_whole_history.

And what it does not say. Three things this page's ✓ is silent about, stated here rather than left for you to discover. (1) Finalized is not checked. The baked aggregate carries no committee certificate, so a correct-looking history and one the network never finalized are indistinguishable here; the finality leg is a separate entry point. (2) The leaves are execution, not authorization. Each folded leaf is the EffectVM constraint set — state commitments, transition continuity, range checks. No capability chain, nullifier, or revocation record is an input to the fold, so "authorized", "conserved" and "not replayed" are outside this verdict. (3) The chain digest commits to the root sequence only — two entirely different histories that pass through the same roots share it.

← back to dregg / deos

WebAssembly MISSING from this build. the card-world engine (cards · light-client · transclusion) needs the 'wasm-cards' artifact, which this deploy could not obtain (source: none-available). Anything on this page that needs the engine will not start. provenance