free · no account · no log

Verify a claim.

Drop a signed envelope or paste its JSON and the crypto runs entirely in your browser — those inputs never leave the page. Paste a claim ID and the page fetches that envelope's bytes from the substrate, then verifies them locally: the server hands over signatures, never a verdict. Result is one of three outcomes: matches, drifted, or unverifiable.

verifier · browser-resident
— · —
Zero-trust by construction. The substrate operator cannot tell you a claim is true. The verifier compares cryptographic primitives (keccak256 + secp256k1) against the public records root — nothing else. Read I-5 →

Three outcomes only

matches — signature + records root verify. drifted — signature valid, root mismatch. unverifiable — bad signature, missing key, or malformed envelope.

No interpretation

The verifier never tells you whether a claim is "true." It tells you whether the bytes were signed by the attester they say they were. Truth is the reader's call. (I-2, I-3)

Runs everywhere

Same result in browser, CLI, Go module, or your own implementation. Frozen schema, frozen primitives. Parity fixture →

need to verify at volume?

For programmatic verification, batch checks, or embedding in your product — call the reference API.

See API reference →