Verify a receipt
Paste a humanproof/1 receipt, or a batch (JSON array), and the public key. Verification runs entirely in your browser, with the same code as the command-line verifier: nothing is sent anywhere. The receipt carries no biometrics, no image and no identifier in the clear: what refers to the person is pseudonymized, which lowers exposure and does not make the receipt anonymous.
The receipt is the signed record of what happened in an act; a batch is a file with several receipts at once. Pseudonymized means the person’s data becomes a code that does not identify them on its own.
Result
JSON report
What is verified
The signature against the key of the declared kid; the format, which rejects any unknown field; internal coherence, such as a result consistent with the steps and a level consistent with the guarantees; and, in a batch, the client chain rebuilt from the hashes, in any order. The format is described in the note The humanproof/1 format. To verify outside the browser, the command-line verifier does the same, offline, and is distributed to clients with a checksum.
It confirms the receipt was not altered after signing, that it is well formed and coherent, and, in a batch, that no receipt was removed, inserted or moved in the middle of the series.
To write your own verifier, the format specification has the full rules and the test vectors, with the expected result of each.
Verify a receipt
Paste the JSON and the public key. No account, nothing sent: it runs in your browser.
Open the verifier