{"format":"receipts-proof/1","hash":"88e544d5c4bd1c3c52c6ca9eb76ade6f77c3e470d3a1101b99d5fd4b94908a92","provider":"demo-donchian-breakout","seq":17,"kind":"signal","issued_at":"2026-10-01T18:00:21.548Z","prev":"f634faf3abdda11b57afbda1378bc7855ffd18ef55fe66c65de4b2e736373b07","body":{"issued_at":"2026-10-01T18:00:21.548Z","kind":"signal","nonce":"b67f05c91e12aa358a01a6fcd728ce14","payload":{"entry":{"type":"market"},"expires_at":"2026-10-03T18:00:21.548Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: 20-bar Donchian breakout, 1h. Mechanical rule, not advice.","side":"long","stop":"83791.2","targets":["86478.2","88090.3"]},"prev":"f634faf3abdda11b57afbda1378bc7855ffd18ef55fe66c65de4b2e736373b07","provider":"demo-donchian-breakout","seq":17,"v":1},"signer":null,"sig":null,"batch":{"root":"88e544d5c4bd1c3c52c6ca9eb76ade6f77c3e470d3a1101b99d5fd4b94908a92","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-01T18:01:20.156Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969474},"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"]}