{"format":"receipts-proof/1","hash":"aaac17c52bf6e3eb41afece22483b07e0716dd651c1f45461bafe93672cfbd91","provider":"demo-donchian-breakout","seq":7,"kind":"signal","issued_at":"2026-09-28T02:08:38.017Z","prev":"ce72564ac9bb26ee9bc9cd819337418208d8c62ffa8308000eaa684009f8df44","body":{"issued_at":"2026-09-28T02:08:38.017Z","kind":"signal","nonce":"88fa12edc30e0bac691eb2379403998e","payload":{"entry":{"type":"market"},"expires_at":"2026-09-30T02:08:38.017Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: 20-bar Donchian breakout, 1h. Mechanical rule, not advice.","side":"short","stop":"84499.8","targets":["82375.5","81100.9"]},"prev":"ce72564ac9bb26ee9bc9cd819337418208d8c62ffa8308000eaa684009f8df44","provider":"demo-donchian-breakout","seq":7,"v":1},"signer":null,"sig":null,"batch":{"root":"f32c40c9ac46416c57a99326b4a21a53f2fa32338d996fa2183b2dc2eba6be73","index":0,"leaf_count":2,"proof":[{"side":"R","hash":"9c1e934acc16ff698e7575f45222a1d3c1b024fd318cd60e3192e51b5126a346"}],"sealed_at":"2026-09-28T02:25:47.424Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":968923},"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"]}