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.
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 →
For programmatic verification, batch checks, or embedding in your product — call the reference API.
See API reference →