{"kind":"crawlcheck-log","v":1,"log_id":"crawlcheck-resolve-log-v1","head":{"kind":"crawlcheck-log-sth","v":1,"log_id":"crawlcheck-resolve-log-v1","batch":831,"first_index":170574,"batch_size":1,"tree_size":170575,"batch_root":"6de393510784896ef043e84572ba52a871d2252d9c003fccfa416017b9301bcd","prev_sth_sha256":"9450f8bed7531e828142b8d2158be46b1f7c35335be709beb67f20b1a0e450b7","created_at":"2026-10-20T13:32:37.199Z","rules":{"leaf":"SHA-256(0x00 || canonical JSON of the answer's decision content)","tree":"RFC 9162 Merkle tree hash over this batch's leaf hashes, sorted","chain":"prev_sth_sha256 is the sha256 of the previous batch's signed tree head; batch numbers are consecutive and tree_size grows by batch_size"},"code":{"version_id":"6929574e-df21-45a5-8a92-5b8ba41cc9aa","script_sha16":"85c9b9b6c9a512ed","state":"attested","deployed":{"at":"2026-10-18T20:02:49.319Z","commit":"2bf491f55991","run":"39161431635"},"build_log_entry":597,"score_version":32,"scoring_policy_sha256":"d3c9c95d409dae4e90b8e868ff113e631e445e33c14a0cc008dda144293821b3","decision_rules_sha256":"18dd5636e0896692ab518050cb401744edea2e6f1086dff94fead314959bdc3e","check":"https://crawlcheck.io/api/v1/builds/6929574e-df21-45a5-8a92-5b8ba41cc9aa"},"sha256":"609cd76ba8a5e63a2df86771dd28ab3fe466a5556a2c5e8e8498626a4b0dee28","signature":{"v":1,"alg":"Ed25519","kid":"1hHmE3fo1rg5Ig70wuFtJ5wBc7G-sUTgUJkxyPWFRps","over":"sha256","message":"crawlcheck-data-v1\n609cd76ba8a5e63a2df86771dd28ab3fe466a5556a2c5e8e8498626a4b0dee28","sig":"SMEMNNg86XJnLdTlugrafwsP7-JUafoR3WZcK2jkm2TRc5UBjSDRHd8bCxtO5Ehq8cx4qlVsplKYpsQCDHAbCA","signed_at":"2026-10-20T13:32:37.725Z","key":{"kid":"1hHmE3fo1rg5Ig70wuFtJ5wBc7G-sUTgUJkxyPWFRps","jwk":{"kty":"OKP","crv":"Ed25519","x":"5TmKCOx0TTHepq7HwyXBHvGQpVCSBd2lV8cLzYVqFxQ"},"published_in":"https://crawlcheck.io/.well-known/http-message-signatures-directory"},"canonical":"sha256 over canonical JSON of every field except sha256 and signature"}},"batches":832,"tree_size":170575,"last_witnessed":{"batch":828,"sth_sha256":"493026ff6294922d4282356e89ea44a45fb82e7320dae52fda21cb78405e9378","at":"2026-10-20T11:51:27.367Z","witness":"github-actions:emmanuelorta/crawlcheck/.github/workflows/log-witness.yml","run":{"run_id":"39417911763","sha":"4fe326856d3970f3e7d92abbdbb70befc56ecb78","ref":"refs/heads/main"}},"reading":"Every signed Resolve answer names its leaf. Batches are merged every batch window (:02, :32, :47 past the hour); each signed tree head chains to the one before. An outside witness re-checks each new head and co-signs it with a GitHub OIDC token whose audience is the head's digest.","routes":{"sth":"https://crawlcheck.io/api/v1/log/sth/<batch>","batch":"https://crawlcheck.io/api/v1/log/batch/<batch>","proof":"https://crawlcheck.io/api/v1/log/proof?leaf=<hex>","witness_latest":"https://crawlcheck.io/api/v1/log/witness/latest","gossip":"https://crawlcheck.io/api/v1/log/gossip"},"split_view":"Clients keep the heads they are shown and compare them with each other and with the witnessed chain (SDK logCheck); a head CrawlCheck signed that contradicts this log is a fork, reported at https://crawlcheck.io/api/v1/log/gossip","code":{"version_id":"6929574e-df21-45a5-8a92-5b8ba41cc9aa","script_sha16":"85c9b9b6c9a512ed","state":"attested","deployed":{"at":"2026-10-18T20:02:49.319Z","commit":"2bf491f55991","run":"39161431635"},"build_log_entry":597,"score_version":32,"scoring_policy_sha256":"d3c9c95d409dae4e90b8e868ff113e631e445e33c14a0cc008dda144293821b3","decision_rules_sha256":"18dd5636e0896692ab518050cb401744edea2e6f1086dff94fead314959bdc3e","check":"https://crawlcheck.io/api/v1/builds/6929574e-df21-45a5-8a92-5b8ba41cc9aa"},"sha256":"9223a5fd4a31e0ceaf79bf3b078163b026067cfeee29322ed78cc100f88a8108","signature":{"v":1,"alg":"Ed25519","kid":"1hHmE3fo1rg5Ig70wuFtJ5wBc7G-sUTgUJkxyPWFRps","over":"sha256","message":"crawlcheck-data-v1\n9223a5fd4a31e0ceaf79bf3b078163b026067cfeee29322ed78cc100f88a8108","sig":"H3vTnfek_k0u08kV-TFvKKYvZXr9TAy1qCNm_ixCKCgOr1id8z-b697tc2eqD0fY_5sGxyIZbA3uqDYx_bwICg","signed_at":"2026-10-20T14:18:20.765Z","key":{"kid":"1hHmE3fo1rg5Ig70wuFtJ5wBc7G-sUTgUJkxyPWFRps","jwk":{"kty":"OKP","crv":"Ed25519","x":"5TmKCOx0TTHepq7HwyXBHvGQpVCSBd2lV8cLzYVqFxQ"},"published_in":"https://crawlcheck.io/.well-known/http-message-signatures-directory"},"canonical":"sha256 over canonical JSON of every field except sha256 and signature"}}