{"format":"receipts-proof/1","hash":"e118249f12b40e924fb61f94c8c8d88374b4f409fe2523b4009edeb040c11272","provider":"demo-donchian-breakout","seq":21,"kind":"signal","issued_at":"2026-10-03T15:00:57.015Z","prev":"5173707fc6714fc690a6ca25c1f5a8cc263e1af897d23a6702a9021a38ab6a22","body":{"issued_at":"2026-10-03T15:00:57.015Z","kind":"signal","nonce":"5de7cd2d169fd8ea8eeb9f66599f127b","payload":{"entry":{"type":"market"},"expires_at":"2026-10-05T15:00:57.015Z","market":{"kind":"perp","symbol":"BNBUSDT","venue":"binance-usdm"},"note":"Demo bot: 20-bar Donchian breakout, 1h. Mechanical rule, not advice.","side":"long","stop":"774.69","targets":["785.53","792.04"]},"prev":"5173707fc6714fc690a6ca25c1f5a8cc263e1af897d23a6702a9021a38ab6a22","provider":"demo-donchian-breakout","seq":21,"v":1},"signer":null,"sig":null,"batch":{"root":"e118249f12b40e924fb61f94c8c8d88374b4f409fe2523b4009edeb040c11272","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-03T15:01:56.961Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969745},"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"]}