Series a field guide to zkTLS
Primus lets you prove something about a web session without handing over the session. The cryptography holds. Most of the mistakes happen in the space between a valid signature and a correct integration, and that space is where this guide lives. Every chapter carries something you operate rather than read: a real attestation you can break, a verifier you can misconfigure on purpose, a game that charges you for the check you skipped. Nothing is mocked, and nothing is promised before it is built.
Every chapter is something you operate rather than something you read: an instrument, a game, a set of cards. Each one is its own deployment, so it opens in a new tab. The sealed rows are real slots with nothing announced in them yet, which is the honest state of a series that follows what Primus ships.
An attestation has nine fields. Seven are hashed. The other two are the ones most integrations read first.
Paste a proof, break a field, watch the two verdicts split
source PrimusZKTLS.sol · @primuslabs/zktls-js-sdk 0.3.14 · a real OKX attestation from the zkTLS Playground, production attestor
Read ↗ 02A stablecoin publishes its backing ratio from zkTLS balance proofs. Every proof verifies. Some of them still lie.
Five rounds against a CFO who wants a better number than you can prove
source Brevis engineering blog, 13 April and 11 May 2026 · live dashboard for USDu
Read ↗ 03The zkVM program behind the live Proof of Reserves reports is public. Two of the three checks from chapter 02 are in it. One is not.
Pick a lie, meet the line of Rust that catches it, or find out that none does
source primus-labs/por-client-unitas · zkvm-program/common/src/core.rs · 921 lines
Read 04A field in a real attestation was committed with SHA256 rather than revealed. A hash hides exactly as much as the value had to begin with.
Watch your own browser recover it, then see what else would fall
source sha256("77530.4") recovered after 775,305 guesses in a blind sweep
Read 05Sixteen data sources ship in the open-source extension. Three ways in, seven of them actually offered, and four request chains written out in full.
Open a template and read the endpoints and credentials each call carries
source primus-labs/primus-extension · LGPL-3.0 · Bitget commented out in commit 6b615d90, 18 September 2025
Read 06Primus quotes a five millisecond bootstrap. The arithmetic underneath is open source, so this chapter runs its benchmarks on a named machine.
Run the same benches yourself and compare your machine with the official run
source primus-labs/primus-fhe · commit 32b316b6 · 8 July 2026 · MIT or Apache 2.0 · reported upstream as #190 and #191
ReadThe series is numbered and open ended. It follows what Primus actually ships rather than a table of contents written in advance, and the format follows the subject: a tool where you need to take something apart, a game where a rule only lands once it has cost you something, a set of cards where the point is to remember it afterwards.
Chapters are announced when they are built, not before.
Chapter one is not an article about the Attestation Inspector, it is the Attestation Inspector. Paste a real proof or mint one in the browser: it recomputes the digest byte for byte the way the contract does, recovers the signer from the raw hash, and draws the packed bytes at true byte width. Nine checks in two columns, and a short quiz at the end that only makes sense if you actually pressed the buttons.
Open chapter 01