Check it yourself
Verify a document
Somebody handed you a reference/1 or an ask/1 and you want to know it is real. You do not have to trust them, and you do not have to trust us — you run a checker you can read in a few minutes.
A sealed document from this network is built to be checked by a stranger: it hashes over canonical JSON, so recomputing the digest and comparing is the whole of it. The checker for each format is one file that imports nothing — not a library, not even a Node builtin — so it runs under bare node in an empty directory, in a browser console, or anywhere else with a TextEncoder. Download it here rather than from whoever gave you the document: a checker is only worth running if its honesty does not depend on the party whose work it checks.
The two verifiers
| Format | What it settles | The checker |
|---|---|---|
| reference/1 | A sealed introduction one party issued about another — that it is unaltered, names two different people, both consents are dated no later than issue, it carries no reputation number, and whether it is revoked. | reference.mjs |
| ask/1 | A portable published ask — that it is sealed and unaltered, names a want, carries no figure, and has or has not expired or been withdrawn. | ask.mjs |
Running one
Read the file first — it is short on purpose. Then check its own arithmetic, then run it against the document:
# prove the checker's sha256 vectors before trusting its rules node reference.mjs --self-test # then check the document a stranger handed you node reference.mjs reference.json # exit 0 — sealed, unaltered, self-consistent # exit 1 — altered since it was issued, and it says where
What a stranger can settle, and what they cannot
The verifier settles that the document is sealed and self-consistent — it is the bytes the issuer sealed, and nothing inside it contradicts itself. It does not settle that the introduction happened as described: that needs the private record, and the report says so rather than leaving it implied. A checker that claimed more than a hash can prove would be the opposite of the point.
These are the same files the engine ships as vendor-reference.mjs and vendor-ask.mjs, served here byte-for-byte. The formats are Apache-2.0; the licence question is answered in the FAQ.