Corobate
Open Receipt Verifier · runs entirely in your browser

Check a decision record

New here? A record (we call it a receipt) is one file that captures a single decision: the question that was asked, the evidence in front of it, how far that evidence could be trusted, what was decided, and who signed it off. This page opens that file and works out every number in it again, from scratch. Nothing is sent anywhere. Nothing is fetched. All of it happens on your own machine, in this tab.
What this page cannot tell you: whether the facts are true. A record can come through every check and still be an honest note of the wrong thing. What the checks show is that nothing has been changed since the file was sealed, and that the conclusions really do follow from the evidence written on it.

Four answers

The last two are counted separately and never folded into the pass count.

Three absences, and they differ. Not applicable — the check did not apply to this record. Unverifiable — it applied, ran, and could not finish. Not implemented — this page does not perform that check; the reference verifier verify-receipt.js does, and its own table lists which. Every check this page implements is reported on every record, whatever version it is.

Paste in your own record

Paste a record here and press "Check this record". It stays on your machine.

Try to fake it

Change something in the record and watch which check catches it. The last two buttons also re-seal the file — they take fresh fingerprints, so the first two checks go green again. A skilled forger gets that far. Working the evidence out again is where they stop.

This page works the record out again from the evidence written on it: the fingerprint of the contents, the link to the record before it, the confidence and the rule that turned it into a decision, the evidence cut-off, the rule book it was judged under, every trust score, the follow-up results behind those scores, the ceilings on evidence borrowed from other records, the sign-off requirement, any risk that was knowingly accepted, and whether anyone's credentials had been withdrawn by the time they signed.

On an independent timestamp it does less than that, and says so. It reads the timestamp file and checks that the file stamps this record and no other. It will only call the signature good when it has been handed a certificate to check it against, from outside the file. It never trusts the certificate riding inside the file, because a file that vouches for itself vouches for nothing. To check one yourself: openssl ts -verify -data head.bin -in head.tsr -CAfile ca.crt, or use the published checker (verifyReceipt(r, {tsa_trust_anchors:[pem]}), the same code as anchors.js::validateTimeStampResponse).

Patent pending — U.S. Patent Application No. 19/747,068.

Everything on this site

Terms · Privacy · Licence · partners@corobate.com · Corobate LLC, North Carolina, USA