Check a CrawlCheck record yourself
Every report can be downloaded as one evidence bundle and checked on your own machine: the signed manifest of what each crawler received, the record digest, its path into the day’s sealed root, and the Bitcoin timestamp. The check below runs in your browser from the bundle’s bytes; it does not ask this site whether the record is genuine.
What is checked
| Check | What it proves |
|---|---|
manifest_hash | The manifest in the bundle is the one whose digest was recorded: every fetched response it lists is named by its SHA-256. |
key_id | The public key in the bundle is the key with that id: the id is the key’s RFC 7638 thumbprint, and the same id is published in our key directory. |
signature | That key signed this manifest digest (Ed25519). |
subject_hash | The sealed record hashes to the digest. Licence or owner bundles only: the subject lists every finding code. |
subject_binds | The sealed record names this report and commits to this manifest, so the fetched bytes are bound to the timestamp. |
merkle_path | The digest is a leaf of the root sealed for its day. |
ots_commits_root | The OpenTimestamps proof is over exactly that root. |
ots_attestations | The proof’s operations lead to a Bitcoin block: the verifier prints the block and the merkle root it commits to, which you compare with that block on any Bitcoin node. |
experience_root | Records from 2026-09-30: the manifest’s sealed root over its fetches recomputes from the fetches it lists. |
decision_root | The sealed root over every decision recomputes from the decision leaves. Licence or owner bundles: the leaves name every finding code. |
lineage_root | The sealed root over the extracted business facts (name, phone, address, hours) recomputes from their leaves. Licence or owner bundles. |
A check that cannot run says why and never counts as a pass. The bundle proves what was recorded and when; it does not prove a finding is substantively right.
Run it without this page
curl -o bundle.json "https://crawlcheck.io/api/bundle?id=<id>"
curl -O https://crawlcheck.io/crawlcheck-verify.mjs
node crawlcheck-verify.mjs bundle.jsonThe verifier is one file with no dependencies (Node 20 or any current browser). SHA-256 of the file served today: 454ff4ba84bef41b6fb650bebb301b8beaff482a1da2cc90849d22cb7d4ce150. Its source is also in the repository as cli/crawlcheck-verify.mjs.