{"format":"receipts-proof/1","hash":"d1ba5dcda795023888101b662203523455b511da9560821ea28ac791722d3f17","provider":"demo-bollinger-squeeze","seq":34,"kind":"signal","issued_at":"2026-09-29T13:45:15.645Z","prev":"b4cf59ff744b44c75edbe19764a11d748a40f24ca6a09cc0eb391bc3d95e16b9","body":{"issued_at":"2026-09-29T13:45:15.645Z","kind":"signal","nonce":"4332c0177ea9128de620250a94df615d","payload":{"entry":{"type":"market"},"expires_at":"2026-09-30T13:45:15.645Z","market":{"kind":"perp","symbol":"LINKUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"short","stop":"15.32","targets":["15.014","14.862","14.709"]},"prev":"b4cf59ff744b44c75edbe19764a11d748a40f24ca6a09cc0eb391bc3d95e16b9","provider":"demo-bollinger-squeeze","seq":34,"v":1},"signer":null,"sig":null,"batch":{"root":"d1ba5dcda795023888101b662203523455b511da9560821ea28ac791722d3f17","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-29T13:46:05.426Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969164},"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"]}