{"format":"receipts-proof/1","hash":"f634faf3abdda11b57afbda1378bc7855ffd18ef55fe66c65de4b2e736373b07","provider":"demo-donchian-breakout","seq":16,"kind":"signal","issued_at":"2026-09-30T20:02:54.196Z","prev":"c2db7456199b890a87767ba79c57d6261b3fe3291d20d3a760fc881243a18a2c","body":{"issued_at":"2026-09-30T20:02:54.196Z","kind":"signal","nonce":"b45360bbcce2c768abb48d2d703fe6b9","payload":{"entry":{"type":"market"},"expires_at":"2026-10-02T20:02:54.196Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: 20-bar Donchian breakout, 1h. Mechanical rule, not advice.","side":"short","stop":"120.41","targets":["112.3","107.44"]},"prev":"c2db7456199b890a87767ba79c57d6261b3fe3291d20d3a760fc881243a18a2c","provider":"demo-donchian-breakout","seq":16,"v":1},"signer":null,"sig":null,"batch":{"root":"f634faf3abdda11b57afbda1378bc7855ffd18ef55fe66c65de4b2e736373b07","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-30T20:07:07.508Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969345},"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"]}