{"format":"receipts-proof/1","hash":"3651eea14a900cc05355a115017db6e0822eae51e98b62365756aa667436cc71","provider":"demo-donchian-breakout","seq":40,"kind":"signal","issued_at":"2026-10-11T04:02:00.923Z","prev":"e03cd6fe565e777eb185b624956117d6af42ab77f783f6a86707a142dc77f131","body":{"issued_at":"2026-10-11T04:02:00.923Z","kind":"signal","nonce":"ac71f885a263fd325deba2ed178971a7","payload":{"entry":{"type":"market"},"expires_at":"2026-10-13T04:02:00.923Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: 20-bar Donchian breakout, 1h. Mechanical rule, not advice.","side":"short","stop":"110.04","targets":["107.72","106.32"]},"prev":"e03cd6fe565e777eb185b624956117d6af42ab77f783f6a86707a142dc77f131","provider":"demo-donchian-breakout","seq":40,"v":1},"signer":null,"sig":null,"batch":{"root":"5133af984624967592e797998e45cb0799fd397d591550a0bdefc8bfdf9af1ef","index":1,"leaf_count":2,"proof":[{"side":"L","hash":"0fd99068658da9cf147cd1275ccdaaef0140f311d371a59a42b28ef9966a0d79"}],"sealed_at":"2026-10-11T04:17:16.614Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970873},"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"]}