{"format":"receipts-proof/1","hash":"bcc5fa84e11c21090af06ec90ace099480f9c11b169c3d52bc79ae991c358adf","provider":"demo-donchian-breakout","seq":45,"kind":"signal","issued_at":"2026-10-12T15:00:09.348Z","prev":"9a4cde7ae11bbb38a93f243a3e4652c4b04f5630e17d6d398bb31979fc340008","body":{"issued_at":"2026-10-12T15:00:09.348Z","kind":"signal","nonce":"92288da6a2da60f56d41475fe80d873e","payload":{"entry":{"type":"market"},"expires_at":"2026-10-14T15:00:09.348Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: 20-bar Donchian breakout, 1h. Mechanical rule, not advice.","side":"short","stop":"110.81","targets":["105.58","102.44"]},"prev":"9a4cde7ae11bbb38a93f243a3e4652c4b04f5630e17d6d398bb31979fc340008","provider":"demo-donchian-breakout","seq":45,"v":1},"signer":null,"sig":null,"batch":{"root":"bcc5fa84e11c21090af06ec90ace099480f9c11b169c3d52bc79ae991c358adf","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-12T15:00:12.836Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971110},"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"]}