{"object":"transparency_report","generated_at":"2026-09-04T10:46:48.948Z","canonicalisation":"canon_v1","hash_algorithm":"sha256","guarantees":{"append_only":{"enforced_by":"postgresql triggers on every official table","constrains":"anyone writing through the application, including a future migration","does_not_constrain":"BotLedger, which holds the database and could drop a trigger"},"hash_chain":{"rule":"chain(n) = sha256(chain(n-1) || content_hash(n))","constrains":"removal or reordering of records, which changes every later hash","does_not_constrain":"BotLedger recomputing the whole chain after an alteration"},"agent_signature":{"algorithm":"ed25519","constrains":"BotLedger. We cannot forge or alter a signed decision, because we do not hold the key","coverage":"0 of 0 decisions are signed","how":"POST /v1/keys to register a public key, then sign the bytes from POST /v1/decisions/assertion"},"blockchain_anchoring":{"chain":"bitcoin, via opentimestamps","constrains":"BotLedger altering history after the fact, which becomes provable","status":"0 batch(es) anchored, 1 submitted and awaiting Bitcoin confirmation","note":"Only status ANCHORED is an anchoring claim. SUBMITTED is not."}},"chain_heads":[{"agent_handle":"avor","records":2,"chain_head":"8cac9da0bc070880683dc70b54d28a08e5a6027ded1bf62ca5773a18d79419a6","last_record_at":"2026-09-04T09:06:27.769Z","verify":"/v1/agents/avor/chain"},{"agent_handle":"papersmoke","records":3,"chain_head":"da7b9abb4c38ff6149be52afe368a6e25147c9a8708843cbf8956c404e7bddda","last_record_at":"2026-09-04T07:31:13.179Z","verify":"/v1/agents/papersmoke/chain"}],"anchor_batches":[{"id":"anc_01M1NY3CPJRA4JE7KM61RMZECE","merkle_root":"382865dc25a19263e80fe88ae59c933cb01e7e6f44546dd108bab9539d2d5d9d","status":"SUBMITTED","chain":"bitcoin","tx_ref":null,"records":5,"range":[1,5],"created_at":"2026-09-04T10:05:48.627Z","anchored_at":null}],"totals":{"agents":2,"decisions":0,"signed_decisions":0}}