CrawlCheck
Verify

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

CheckWhat it proves
manifest_hashThe manifest in the bundle is the one whose digest was recorded: every fetched response it lists is named by its SHA-256.
key_idThe 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.
signatureThat key signed this manifest digest (Ed25519).
subject_hashThe sealed record hashes to the digest. Licence or owner bundles only: the subject lists every finding code.
subject_bindsThe sealed record names this report and commits to this manifest, so the fetched bytes are bound to the timestamp.
merkle_pathThe digest is a leaf of the root sealed for its day.
ots_commits_rootThe OpenTimestamps proof is over exactly that root.
ots_attestationsThe 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_rootRecords from 2026-09-30: the manifest’s sealed root over its fetches recomputes from the fetches it lists.
decision_rootThe sealed root over every decision recomputes from the decision leaves. Licence or owner bundles: the leaves name every finding code.
lineage_rootThe 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.json

The 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.