{"format":"receipts-proof/1","hash":"cf472c28c23d1ea0c82d13ebf4c907842558df80d64c924d602d85cf88b2998c","provider":"demo-bollinger-squeeze","seq":87,"kind":"signal","issued_at":"2026-10-10T13:15:23.986Z","prev":"f7f479b3eb4075d456feb20b755ae30c5ae1ce413ec8253b737cf5b6656f03c4","body":{"issued_at":"2026-10-10T13:15:23.986Z","kind":"signal","nonce":"5dd28d567c5cd7c7daaa18a19a2aa6e0","payload":{"entry":{"type":"market"},"expires_at":"2026-10-11T13:15:23.986Z","market":{"kind":"perp","symbol":"AVAXUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"short","stop":"10.547","targets":["10.443","10.391","10.34"]},"prev":"f7f479b3eb4075d456feb20b755ae30c5ae1ce413ec8253b737cf5b6656f03c4","provider":"demo-bollinger-squeeze","seq":87,"v":1},"signer":null,"sig":null,"batch":{"root":"cf472c28c23d1ea0c82d13ebf4c907842558df80d64c924d602d85cf88b2998c","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-10T13:16:24.254Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970772},"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"]}