{"format":"receipts-proof/1","hash":"9261a8d2100872c7a106621d27e3f51b11e272a676b61c623533907abb5a8cdf","provider":"demo-bollinger-squeeze","seq":74,"kind":"signal","issued_at":"2026-10-06T15:15:24.699Z","prev":"230b0fb33ac9240ac06f93185e1b25d56b47d03524eba7b1253736a3f1e3097e","body":{"issued_at":"2026-10-06T15:15:24.699Z","kind":"signal","nonce":"819e19b39a06d8f400bd17e685c5943a","payload":{"entry":{"type":"market"},"expires_at":"2026-10-07T15:15:24.699Z","market":{"kind":"perp","symbol":"LINKUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"long","stop":"14.011","targets":["14.199","14.293","14.387"]},"prev":"230b0fb33ac9240ac06f93185e1b25d56b47d03524eba7b1253736a3f1e3097e","provider":"demo-bollinger-squeeze","seq":74,"v":1},"signer":null,"sig":null,"batch":{"root":"9261a8d2100872c7a106621d27e3f51b11e272a676b61c623533907abb5a8cdf","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-06T15:16:25.409Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970191},"how_to_verify":["hash = sha256(\"receipts/v1\\n\" + canonical_json(body)), keys sorted, no whitespace.","body.prev must equal the hash of the same provider's event seq - 1 (64 zeros for seq 1).","If signer is set: sig must be a valid Ed25519 signature by signer over the UTF-8 bytes of \"receipts/v1/sig\\n\" + hash.","Fold the Merkle proof: node = sha256(0x01 || left || right); the result must equal batch.root.","Decode opentimestamps (base64) to a .ots file, then run: ots upgrade file.ots && ots verify -d <batch.root> file.ots","Or run: node scripts/verify-bundle.mjs bundle.json"]}