CrawlCheck
Proof

Proof an agent can check without trusting us.

An agent that acts on what CrawlCheck measured should not have to take our word for it. Every report is fingerprinted and each day anchored to Bitcoin; every answer an agent acts on is signed; every signed answer is entered in a log that a witness running outside our servers re-checks. Each of the three is checked on the reader’s own machine.

Proves

A report with this digest existed in exactly this form by that day, and has not been edited since.

Does not prove

That the measurement was correct. Only the first claim can be settled by mathematics.

64

sealed days

132

reports under this root

#969,375

bitcoin block

Three proofs

What each record proves, and how to check it

Each check runs on the reader’s own machine, from files that are published and can be kept.

1 · Reports

Sealed and anchored to Bitcoin

Each report’s measurements are hashed; each day’s hashes become one root, committed to a Bitcoin block through OpenTimestamps.

Proves the report existed in exactly this form by that day.

The latest sealHow it is built

2 · Answers

Signed with Ed25519

Every Resolve answer an agent receives before it reads, cites, connects or transacts carries a signature over its canonical content.

Proves the answer came from CrawlCheck and was not altered in transit or afterwards.

The signing keysThe offline verifierWhat an answer holds

3 · History

Logged, chained and witnessed

Every signed answer names its leaf in an append-only Merkle log. Each signed tree head chains to the one before, and a witness running on GitHub, outside our servers, re-checks and co-signs it.

Proves an answer was not rewritten or removed after it was logged.

The log headThe latest witness

Method

How a report becomes a proof

No wallet, no fee, no key held by us. The proof is a file, not a coin.

1Reportmeasurements only2SHA-256one digest3Merkle rootone per day4OpenTimestampstwo calendars5Bitcoin blockpermanent
  1. 1

    Measurements only

    Host, timestamp, section scores, every path and status fetched, every crawler identity and what it received, the citation state. Wording and layout are excluded, so an editorial change never breaks a proof.

  2. 2

    One digest

    Canonicalised with sorted keys and hashed with SHA-256.

  3. 3

    One root a day

    Digests sorted and folded into a Merkle tree: parent = SHA256(left || right), an odd node paired with itself. Arrival order cannot change the root.

  4. 4

    Anchored

    The root goes to the OpenTimestamps calendars, which commit it into a Bitcoin transaction.

The seal

2026-09-30

Confirmed in Bitcoin block #969,375.

Merkle root
f63ca1bf7a291d3542316c4565a0f8b0cfbea043d8645428e4ce6b977c947e23
Reports covered
132
Sealed
2026-10-01T01:17:07.633Z
Calendars
https://a.pool.opentimestamps.org
https://b.pool.opentimestamps.org
Bitcoin
block #969,375

Download the .ots proofOne report’s receipt as a single file →

Verify it yourself

ots verify -d f63ca1bf7a291d3542316c4565a0f8b0cfbea043d8645428e4ce6b977c947e23 crawlcheck-2026-09-30.ots

The reference client checks the file against a Bitcoin node or a public calendar. No CrawlCheck server is needed, or trusted. A fresh seal reads pending confirmation until the next Bitcoin transaction confirms; ots upgrade then stores the block attestation in the file for good.

Ledger

Every sealed day

64 days anchored. Each links to its own root and proof file. Days are sealed once and never recomputed.

The 132 digests sealed under this root
004734792adcff9aef38edf5a1e3dc3a86299fda7811bf39320b90062d1aef79
07a90c2564262338cc8462adb6526d703ce5e0fc009ebaca681e412995870f24
0885cc4b0c249830d0125e2fa2d99a4cf9234978aa4b48295b08e7ba2cdf9210
093667d03cca8731bbe5ac6b18efba0d220f34b18831a25b10e4cc06cb2a01cd
0ad527a200530baec24e6131a7f076afcd25636d125d8fcdc36b06a84cbe5be0
0bb22ce3fac1ebf8af21f4edb6cfcc46b1164d3179b1fe356eb05355268fb776
0de1ed1395fdeae9707c2e29ee302b6789778e5d8352fde8dfd6bdd8bef007ca
0f902effc91dc9af9f40e995c1123715a0d48d6daaeb92572a5fbf55d2f4a50d
115b7a07b80b3167f29fb8bf6c504bc8e8a477319d809df28139a600492c6308
11716160e2a08cebc56d530d8faa6c1c7f6c7035b65f9510f5661fd515eba5a8
1186113b8a384d83c95eedd3edefe02f414adc527e9efc148018dabe77848e62
1245016c005728623abc83274aaa1cdab6901a9adf31fd6545a74bc827644567
1460a90f5fadd9771f5cb1e8721f7e275f4863e2ae9d715adb30cbb7787f76e4
17b544b26b392d670d6c6ae552cc46acd51034206f527dfaa2942cb297fcd7d0
19be2836b58d202f1fb8b492d49aee5079c12d435f12695f506e891df0d4bd44
1a8f6ca6cf4a301a1474c3b3f8684f9778a0fa8c77bf722f8097923318228e3d
1beed820ed0f5473e20c33cd4c9ba7d66ce4cf100eb0634efb12978520942250
1d9d1db7f23474f79a61b898425745e0dcffbd772ce69e24839c26208922ec43
1f9956ac374c000641805f81682d587eb2e31c0beadc4682431eb6602459e277
20fb0499cee091396b55671b0f015024fd73892d6d213c5ac9bc7bbce17187ca
225ef02664c1d130b73d84abe77889ebb01e6a55653e0749fa4402f44d9c5610
2653f1e044c68c393d202d7a7d5ccbc39a15cd531ed05745554f2169e409dafa
271f1a18ab99e218c12d86d436c46a601665eaa35d3c2023933e8a9717f02694
2b6e91a50bf67610a675123656373fad2931660e6c98a6b2115c7fd482255121
2dae1a8f2b44adfa747ea9ea59bcf2c560d91d05a8ac70fb7173d71d753dc036
35807cde0237f7eeda2afd2f9253b486540ae3817e93e5a859d643282b11ebd5
367bbc9d631937d7a467ddc190a191dea79aa319c37a29fe5e8f1dc8cd615fd9
39fc91b3c195a3c9f6cc516ed7041fa52f056065ca6003b34b7c62888f9a6e2e
3ae2c3fdf2b2831f35184602403dd44589a2284bd14418da90cd75a33e6a193f
3df567fe3f5923cbda137b2ef4874b4f000b88aaff4f7bab9706f3ec631b7c0a
3f0eb46fcb39084c2259db60e73c52021c9d16fff6751dc6b063eb038ec6276f
3fac59f6bf6b08adbb2088b3d4502f65f76d647f483e9d040e5e400e778944f1
3fb601b102b0f9500ce2abb2649b32cabc3687e706d0ad6f84ca9e70370b30f7
41a61c5fa00afe70560a726ad7d95a368509edd1f9a47799ff2092e49a645f23
450a8691538b099293db1e899716e9d7a339c212ca223ff8a2f9d2c54ad40e3a
45814eb33b3ddb0b9ef04f7e68ede7caa5aa540ecc8725dead3a09c4b08b978a
45d6af56ccde41d538534e1cfea24fd727d4b995690bdd0ccc84fa3913c2e679
4810dda2b5a01d1e8bed1844e913c2ce600c7e13a46968d20b52ac9e4e2adcb8
488746d23e1364279426bcba5040841163eb4f5470804adddf4bcf98f4891560
48af2b5e242359e20b3bb0869838a295ea64105699bc07eac4343f0e9532e8fe
4b3c9d8db89133ad8d05e3fd67bb5a5afa0af525fa8e2c18728367c58c9854c5
4e70c87d07ea3df5419325dfbafcb2d56860cb86f2a17fc5c3eba3696b0e413a
4fdf1727d72e326c7613a0b9617f3ae5f9835e28aefafd81660e53b109897c8c
4fe2e692ff1202ce21f141c0602903d4b70500bbd20d4c2d204f81bc95d7ab62
516c9795b1ee673a1996f8ab729d45bbe2204dc8c3d30bb827c233db67dafa10
5269460799b5af473a0ddf443118d582f38e43e642dacc661fdabec5722c6413
53fe36f3d5493f06ffa9ff0fd11913375e9ce89dd179c09abcfbc475a9ee5a60
549a10bdab2bc3328f04c3d71cc1765a0c5eb56dd58aa550c5e0ef97dca95ed1
563c769f4d0f29173a023b17f13f888817d7c5e0827f487255a5d94e6a54c73f
5680f39c05b00554a7ca3e5aaa71dcae2a321e54930fb7bbbfde0f47385ff36f
5a5b7b5670239ab60d0784c604aea9a886bb908caaee35eab5e585dc55597fbe
5b25d0bee189d02936752fd9100026c1a12e658865fc4fb1add32af8c6c40f02
5b490c590b1cc291ad6da31b0e22316c94383137f8c0af4b3f5d6b8898d9efb2
5e0ea35d3de1df55a002f6fa9256e65382a8d73f0617c80dfaeb0dc5e898b60e
610eeda6d027ccb5d60fe5eb7d89175184d2fed9e92f19557ff3558ec3b8ad9c
62376584d354ccf80ef36ae0c25a5a742645fc192a410edfb959960c77530a1a
6277c9c88c7b418e97bdc33d5d61628bf99be1ecad664220a9f201f1474825c3
6352cf2a99891a7b188b95393f0f40f08b024161e1356c40da28a5be9aefe90b
664be85f2d08aa0c93ef9a6ca1e56814983b015224bf8f7a2448e4a44d57c789
66c22480c03395966756afed8b8a73d9e9b411329ddc743c6846a5de9f697261
66c7750a6aaf10ddfb92578156875abdfa502022efc0a0b0c960cbfd736acedd
6b26bd1d591a7ad4d512e34ab917fa59f8a24af69f8a5d24842785ea6a4e78be
6b87bc8d887d38b8b4d8358827d1ae5340cdff9dfde7ca85ee930cc7ae17377e
6f68cc22a9bffef8829d5e7c7382a3d0c69f9ff6de9b5d9cd196cf6c49dbbcc9
712453cf1f397bf78c73c4cf662e5d2d147bf2709efc95f40760c7083b0ec9dd
72d8460c548aa5d99e7aec4c0900aa4623e07071647eff6d1faf8c6ae62fb157
73b3662fa5007554bc9bc53f055e0450e11bd96cce1ac475485c328c1eb597ca
73c86ffc650d530cf79d512e6c1be82c0d129055dbcb887a0801032c75e985f8
740fce7bf8754f7f7e149b8bda9fd36fe84241b3997d79e5063a43bb43e28c49
7c2ef7947064d4729b8be2191bc94903df3ba94b86cf1b40153747e21403be17
7eb5507b1234c0c4a3386196d9d8e563afd01d7e84795b5838dce8c0bf4982a6
85e85a3054f0c728e17e00031e6e9e082cd8ad05f9089bc9fd06a63957ec5705
8735fe05df5bc67a7dad5f4eab0b1253ad37e219fd53606126765aaf06d9d5c3
8932e2fd4fa81f83ba3b2c66b1d0584e8befa5e2ba3321ab76d32f85ebaa3beb
8b764961ce6346fb9817502086951ea9232dfdf432c23b9fda5e0ad16eeceb5e
8b93eb411da4c0dd7eed1569e92c47f7fcde0914bf0d2c7baccb7315e2cfafdd
8db3b88b8b9e04c281f1ed84aff57d7f2e18e5dac6c1cc10b4765d62b14c86ef
901bf67b67d18f9cdcf467818b3c92a0d4d926e75a4bac254a4312edf5393f32
91b08f71b74c96e8a9652fcf96bec5488e13469a9c8b908603e73a9e2bae445c
91ecedf6efa1c6ecd28c1722d06c343369f0157a32fa0817ca39073b36daca30
91fe4e27cfbe2042fe4cfb840f49a2356484733d49fcd7870c6bd9e94b8df965
9366d150a971d83398b7b2b7fa00f6fc2dbc4cf952ce47fb7357275fda2ad649
9378533878695b94b4b709d4380ac5fe8c277e5ac077837b5d679d5c9f03f208
93e45923b654b911f1a94cd6cf93042513656e8b217751810b82736cd05f1821
9731435a01e4fd19c71d506fbe6a45e32fac5b26b58ff5a1bf9c92900e1f0d6e
980c93424a8561a4b1444f175622fd9e1123c4bcb7728bc7806cca5fda7c2b76
99e340ff9bc3b88d1876e1784d640e53ee1e4eed0390e51b0f533ef87e9b0ff1
9a399cda69fade74d2e557ffedd5c781dc4b61d306e0c9b16ea1f40bf1e37625
9bcc65f533a250ac87295f0728ea84e00d02e920ab420c3eb65635260cf7a4f4
9bceede32f09e15766c74a7a7806405e9d10ff9ab334cc193fd123f6a42a171f
9c0edbbd06cbfa6b4928265d08080c32e5de8d725813857e7bd80bb70abbefa2
9eb49b3b3df4e14d89d43ec107f3bd37288246435fed2e50bb4e8ff64584830f
a21a42a7f3d8452e263171d8604bd67204e04ce8a6ff108480b0d498013f2b8e
a3360f75af94ff150bd948c3836a9dba492e380c64f130e3b06b8c44be0fd135
a6f08bf77d6ad79cab544e98152e7597405d37daf84857a1c83655e564b5df5f
aa2593413c697535a0d1a7a73d484d2ce04548e82a8e87c1f2d7ba8d20704cd9
ad757c8158a44c411c2ef5b8b175006cbcb6ef5fb01df71d210988c1a9e1960d
ae407f03fec40f458144605d0b4577e338d668ef65dce93ba95d0efc02e85f35
b2d91e648083c214cb592d83cc2823a34b42012a7491c1daadb3dae534e28841
b3c3d84b07c7c626e5df4e235ece2444f046aa04e868b65aa6869c808e8de3ef
bce77a5bd7470e092eaa9dbb515f9010e372c603d232a6b1851c490105362adf
bdd6b8ad48a22418e46f407431a81e25f42df6946b532fee3d500d81ea7eba73
bf199acdd8d6a0fe6e758331bdbbbbdfde2215e486e66a9486089955e5974275
c4360fd8a616c1a7a91e50cff1660ba2ca0c6b3964c6a30ec025befaabbd5def
c517b68505c56173d1a13752d55a5312bac5c0b1b155c8013699c899c1d47282
cc9e83308cd45269106ee7f47d8f297c2ac31227139b459f48c692b112056b02
cf203a17cbb18b108fa116757096519a5b00c4067b7cb8e181b3050fb728da89
d1f5ac7595d1e55ba0969a646b2ef8189250977cb6fbb43adcdfd014f7f3646d
d3150a9c33c87671a6321baef13244dbbf436d70db050f88bfc7c6e908614100
d330bfe30246e05adc286a4ab1eb4def1200c803e64d11114003b35edb982013
d3f51b0494808564b01a7d42c00f7bb516174fd04c5197b0d754bfdcad87de7c
d47ffd364ea89fa157558533c79deacdee307a260a34986d01102cfd2473debe
d48dddd5413ded4f19b06b194e31131b738de14a8ca92075f7d16cae708e26e2
d70ee0c0acf52d39c5c1242a7b2a780ef3a06620518d140e6c5e0a44c022f4ef
d834cd6880b6fcfad0daa712125bbcfe1e2b8fbea34c3ce4b43a5a9f2bd23b6f
d8c93f0e0f6fdfd3a3ff721ba9d04a87e0696dda443baed3b7d94f2ba767fe76
d8fac7d336fd2d8bb2159ff85634beecc73d5b2c072ff1f672388bf31afee5f1
dab64218fe8064248d8dd5e1223d045273af099057f4a8d8b822a71b9c4b9f8f
dc74aeefc3daeed2e31476b1afe5c2012cef0101ce546cf5f0bc1b2ad4bb937c
df80adfd1ecbf566469bfd7673d28294613dc375cc56bd581081cbee441b5c07
ea1b843552ab7a5fa86b3dc3ff8201bca5037e8d725d7edf12656f6eabe67295
ec4f3a59bca75088e91ba71f418e13d51dba0b02e3570f1c268d857482b10467
ee8ddf18e138c1e700c5beba76924ca75a78d6118b70cbf92f8079e9d216552a
f0adc612754fb919cf1417c49e0a578f922d999e58b64963af4e391ff0fda490
f24d07ecaa92a037ec1768e3f29d32e1765252ba078dd9e9fdab7388e3cffb4f
f4cb578b2c459869c6e6f93a7f9c01807d3c17289935be88a0144f787c83ecc4
f84e50cf0c8a71fc5decd2177623db1d1b9c8c3737979ddf2fdc73e366e4a994
f9cfa49260a1099b6a89f55a57b11eba1637158ce7bf58f6a8807c6b7f5a80c1
fb7ac7b71e7a01dedc5bc629c8d4ed07be207349e112c022c69f75717bf9a479
fc4acab73317f9727187fd5c793c2207dad8205ea37438677c534f75ae2da31b
fe689e44adcb91ccce782e1ac533459acb69b7c2646acae89c25cdc2f6c49bfc
fe9e2f72ccc4a88f678e79ccf17a65f1d0e742d07e38a4b6eac78e18639b9cbf

Questions about this page

QWhat does the Bitcoin anchor prove?
That a report with exactly this digest existed no later than the anchored block, and that it has not been edited since. It is a proof about time and integrity, not about correctness.
QHow do I verify a report myself?
Download the day’s .ots proof from this page, recompute the report digest from its JSON record, and verify the proof with the OpenTimestamps client against a Bitcoin node or public calendar. No CrawlCheck server is needed for the check.
QWhy exclude wording and layout from the hash?
So an editorial change never invalidates a measurement. Only the measured fields are hashed; the words around them can be improved without the proof breaking.
QWhich days are anchored?
Every sealed day is listed on this page with its digest and proof file. Days are sealed once, after they end, and never recomputed. A day sealed within the last day or so reads as pending in the reference client: the calendar holds the commitment, and the Bitcoin block confirming it is usually mined within 24 hours. The proof file here is upgraded to carry that block header once it exists, so a pending file is a proof waiting on a block, not a missing seal.