{"format":"receipts-proof/1","hash":"b132a27cc029d024ead266eeb69a263cb1fd1ab359f3bd9f509fded8c77b3461","provider":"demo-donchian-breakout","seq":42,"kind":"signal","issued_at":"2026-10-12T05:03:06.495Z","prev":"d532029f85b76be3efcfb9cbb7618f06f942da1e79553eaf7f09c07e3185e713","body":{"issued_at":"2026-10-12T05:03:06.495Z","kind":"signal","nonce":"e3c96d9f6a280cf40452d15637dbef28","payload":{"entry":{"type":"market"},"expires_at":"2026-10-14T05:03:06.495Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: 20-bar Donchian breakout, 1h. Mechanical rule, not advice.","side":"long","stop":"111.05","targets":["116.28","119.41"]},"prev":"d532029f85b76be3efcfb9cbb7618f06f942da1e79553eaf7f09c07e3185e713","provider":"demo-donchian-breakout","seq":42,"v":1},"signer":null,"sig":null,"batch":{"root":"c86aff6c39b07abef12eb879418fb37a7a685320dfe89ecb92993682481e37a7","index":1,"leaf_count":2,"proof":[{"side":"L","hash":"d532029f85b76be3efcfb9cbb7618f06f942da1e79553eaf7f09c07e3185e713"}],"sealed_at":"2026-10-12T05:18:22.277Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971050},"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"]}