{"format":"receipts-proof/1","hash":"e3afb32ef0f583402fc270a142640edb4cef977e559e6b3d8b6ac5532ae03eb3","provider":"demo-donchian-breakout","seq":32,"kind":"signal","issued_at":"2026-10-07T13:00:35.112Z","prev":"4b2e12e2e47c74b9a2a44fd768f28f346a257fbfa669892f6493b53a7abe7029","body":{"issued_at":"2026-10-07T13:00:35.112Z","kind":"signal","nonce":"7ea7dd666be42dbb33ffdc8b9be8b8ff","payload":{"entry":{"type":"market"},"expires_at":"2026-10-09T13:00:35.112Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: 20-bar Donchian breakout, 1h. Mechanical rule, not advice.","side":"short","stop":"118.11","targets":["113.65","110.98"]},"prev":"4b2e12e2e47c74b9a2a44fd768f28f346a257fbfa669892f6493b53a7abe7029","provider":"demo-donchian-breakout","seq":32,"v":1},"signer":null,"sig":null,"batch":{"root":"e3afb32ef0f583402fc270a142640edb4cef977e559e6b3d8b6ac5532ae03eb3","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-07T13:00:36.287Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970345},"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"]}