{"format":"receipts-proof/1","hash":"0c2fbef17205da9c6393f65a90b620e520f50c9434f86cf2f03c3f1328e13e02","provider":"demo-donchian-breakout","seq":4,"kind":"signal","issued_at":"2026-09-27T00:03:16.451Z","prev":"0d7faff8f4abb31af371afb2bc3d0b18a0e156efa81cd8aa3445c730b62579de","body":{"issued_at":"2026-09-27T00:03:16.451Z","kind":"signal","nonce":"8140c7d0f44182e87420d2626c7e9e6d","payload":{"entry":{"type":"market"},"expires_at":"2026-09-29T00:03:16.451Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: 20-bar Donchian breakout, 1h. Mechanical rule, not advice.","side":"long","stop":"84046.5","targets":["84938.5","85473.6"]},"prev":"0d7faff8f4abb31af371afb2bc3d0b18a0e156efa81cd8aa3445c730b62579de","provider":"demo-donchian-breakout","seq":4,"v":1},"signer":null,"sig":null,"batch":{"root":"0c2fbef17205da9c6393f65a90b620e520f50c9434f86cf2f03c3f1328e13e02","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-27T00:13:14.438Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":968761},"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"]}