{"format":"receipts-proof/1","hash":"1f8d258a3ce90757e9f5e8492967fba59db9aa85a422ac55a406afc9ef3796a6","provider":"demo-donchian-breakout","seq":27,"kind":"signal","issued_at":"2026-10-05T16:00:01.306Z","prev":"b0f3c9f224a656cb80d3875c47e0b8a9957df02302e88e3510f62496b9bd3b77","body":{"issued_at":"2026-10-05T16:00:01.306Z","kind":"signal","nonce":"86070236bc952ebae550868da788866e","payload":{"entry":{"type":"market"},"expires_at":"2026-10-07T16:00:01.306Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: 20-bar Donchian breakout, 1h. Mechanical rule, not advice.","side":"short","stop":"86268.9","targets":["83647.3","82074.4"]},"prev":"b0f3c9f224a656cb80d3875c47e0b8a9957df02302e88e3510f62496b9bd3b77","provider":"demo-donchian-breakout","seq":27,"v":1},"signer":null,"sig":null,"batch":{"root":"1f8d258a3ce90757e9f5e8492967fba59db9aa85a422ac55a406afc9ef3796a6","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-05T16:00:57.747Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970047},"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"]}