{"format":"receipts-proof/1","hash":"5173707fc6714fc690a6ca25c1f5a8cc263e1af897d23a6702a9021a38ab6a22","provider":"demo-donchian-breakout","seq":20,"kind":"signal","issued_at":"2026-10-02T19:00:41.764Z","prev":"4ff9230c4b36ab2804ff28641ffab7da5e7a809d453f3f14397c04d4156d97e3","body":{"issued_at":"2026-10-02T19:00:41.764Z","kind":"signal","nonce":"f76bc9f86c0fb9f6894fd0378e7359be","payload":{"entry":{"type":"market"},"expires_at":"2026-10-04T19:00:41.764Z","market":{"kind":"perp","symbol":"BNBUSDT","venue":"binance-usdm"},"note":"Demo bot: 20-bar Donchian breakout, 1h. Mechanical rule, not advice.","side":"short","stop":"774.43","targets":["749.86","735.11"]},"prev":"4ff9230c4b36ab2804ff28641ffab7da5e7a809d453f3f14397c04d4156d97e3","provider":"demo-donchian-breakout","seq":20,"v":1},"signer":null,"sig":null,"batch":{"root":"5173707fc6714fc690a6ca25c1f5a8cc263e1af897d23a6702a9021a38ab6a22","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-02T19:09:41.764Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969627},"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"]}