{"format":"receipts-proof/1","hash":"2798577ffd271ed73dce7c5f04ff8e8561d8f14181cef4fee6eec8b30d323b6d","provider":"demo-ema-cross","seq":118,"kind":"signal","issued_at":"2026-10-11T05:30:26.537Z","prev":"0fd99068658da9cf147cd1275ccdaaef0140f311d371a59a42b28ef9966a0d79","body":{"issued_at":"2026-10-11T05:30:26.537Z","kind":"signal","nonce":"00012d5c508f41890d63044991dfb996","payload":{"entry":{"type":"market"},"expires_at":"2026-10-12T05:30:26.537Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"82902.5","targets":["83259.9"]},"prev":"0fd99068658da9cf147cd1275ccdaaef0140f311d371a59a42b28ef9966a0d79","provider":"demo-ema-cross","seq":118,"v":1},"signer":null,"sig":null,"batch":{"root":"2798577ffd271ed73dce7c5f04ff8e8561d8f14181cef4fee6eec8b30d323b6d","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-11T05:46:35.579Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970879},"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"]}