(ZKTHUNDER)[ VERIFY IT, DON'T TRUST IT ]
0BLK
THE GAPANCHORING
[ VERIFY IT, DON'T TRUST IT ] reading the lineage…CA: explorer

ROBINHOODCHAIN RUNSON TRUST.

[ 4663, WHITELISTED FRAUD PROOFS ]

EVERY WINDOWOF BLOCKS,COMMITTEDON CHAIN.

[ 2048 BLOCKS MAX, SEQ STRICT ]

THE STATESTAYS HIDDEN.THE PROOFSTAYS PUBLIC.

[ 736 B BUNDLE, 3 NIZK PROOFS ]

VERIFIEDBY A CONTRACT,NOT A PROMISE.

[ 3 CONTRACTS LIVE, MAINNET ]

PROVE IT.TAMPER WITH IT.PUT ITON CHAIN.

[ 1 FREE RECORD PER VISITOR ]

LIVE ONMAINNET.PAID FORBY PROOF.

[ 3% TAX, PROVER TREASURY ]

Prove everything.

Reveal nothing.

Verify it, don't trust it.

( ● )LAB.001VERIFY

Don't take any of this on faith.

The protocol's conformance suite is embedded in this page. It proves its own hash function against known-answer vectors, checks the 98-byte signing layout byte by byte, and then asks the deployed contract on Robinhood Chain for its answer and compares. Nothing simulated, nothing fetched from a server.

conformance suite (runs locally in your browser)
17 assertions loaded: keccak-256 known-answer vectors, canonical JSON determinism, domain-separation byte layout, replay binding, then a live cross-check against the contract on Robinhood Chain. Press run.
( ● )LAB.002PROVE IT YOURSELF

Your secrets never leave this page.

Type any two values. Your browser turns them into hiding commitments and generates the same zero-knowledge bundle the protocol anchors. The live verifier accepts it, rejects a tampered copy, and you can record it on chain from your wallet or for free (one per visitor per day). One button runs the whole loop.

or type any two secrets
Nothing generated yet. Press "Run the whole demo" to see commit, prove, verify and reject in one go.
( ● )LAB.003RANGE

Prove a hidden number is big enough.

Proof of reserves, in miniature. Type a secret balance and a public threshold. Your browser commits to the balance, proves that the hidden value is at least the threshold, and the RangeVerifier on chain checks it, without ever learning the balance. Try inflating the claim afterwards: the same proof stops working. This is the primitive that lets a protocol prove it is solvent without opening its books.

Nothing generated yet. Press "Run the whole demo" to see the hidden balance proven, verified and defended in one go.
( ● )LAB.004FEED

Proofs people have put on chain.

Every record in the permissionless registry, newest first, read straight from the contract by your browser. Each one is a visitor's zero-knowledge proof the verifier accepted, with the wallet that recorded it and the transaction that carries it.

reading the registry…PublicProofs on the explorer
( ● )LAB.005LINEAGE

The chain's own roots, anchored without a signature.

The trustless lineage, read live from TrustlessAnchor. Each row is a window of Robinhood Chain blocks whose end state root the contract took from a real block header and bound to a zero-knowledge proof. Press audit on any row: your browser re-reads the record and the block from an RPC node and checks them against each other, without asking the contract whether the contract is right.

reading the lineage…TrustlessAnchor on the explorer
Anyone may anchor. Each anchor covers every block since the last one and must land within about six minutes of its end block, which is how long the contract can check a header against the chain's own block hash. Audit re-reads a record and its end block from an RPC node in your browser, then checks that the recorded root matches the block and that the record chains to the previous one.
( ● )LAB.006AGENT

An agent that proves what it says.

Ask the zkThunder agent about the lineage, or ask it to prove something. It cannot compute a proof itself: its tools run inside this page, so the prover that generated every bundle above builds commitments and proofs from your private inputs, the deployed contracts verify them, and the agent can audit a live anchor against the chain. Your secrets stay in this tab, and it only reports what a tool returned.

zkThunder agent · tools run in this browserchecking
private inputs · never leave this tab

Ask about the lineage, or ask for a proof. The agent answers with tools that run inside this page: the prover builds commitments and proofs from the private inputs above, the deployed contracts verify them, and the chain is read directly. It never sees your secrets and never reports a result it did not get from a tool.

The conversation goes to the model through a project relay, rate limited per visitor. Secrets, blindings and proofs are computed here; only commitments and results are shared.
( ● )LAB.007CODE

The parts you need to check the claims.

The full source is private. These excerpts are the exact checks running in the deployed contracts and the prover that generated every bundle verified above, with the live addresses and anchored transactions on the explorer.

ProofAnchor.solanchorProof, core checks
if (paused) revert ContractPaused();
if (seqByProofHash[proofHash] != 0) revert ProofAlreadyAnchored();
if (seq != lastSeq + 1) revert NonMonotonicSeq();
if (startBlock != lastEndBlock + 1) revert RangeOverlap();
if (endBlock - startBlock + 1 > MAX_BLOCKS_PER_ARTIFACT) revert WindowTooLarge();

bytes32 dsHash = computeDsHash(proofHash, startBlock, endBlock, seq);
address signer = ECDSA.recover(
    MessageHashUtils.toEthSignedMessageHash(dsHash), aggregatorSig);
if (!_isValidAggregator(signer, seq)) revert InvalidSignature();

if (address(verifier) != address(0)) {
    if (!verifier.verify(zkProof, publicInputsHash)) revert ZkVerificationFailed();
}

Follow @zkThunder_ for launch updates.