{"format":"receipts-proof/1","hash":"8a57dcf56189c6c23291215401e3540c5a0f7c1776337fae79baa920cf0c9487","provider":"demo-ema-cross","seq":106,"kind":"signal","issued_at":"2026-10-09T13:30:50.915Z","prev":"196ca81e21c4b1135e32aadc9d5042c22cb4489d9976b58868075720b669e80e","body":{"issued_at":"2026-10-09T13:30:50.915Z","kind":"signal","nonce":"d302f2227d44c93caf6b2c62e452a227","payload":{"entry":{"type":"market"},"expires_at":"2026-10-10T13:30:50.915Z","market":{"kind":"perp","symbol":"ETHUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"2506.79","targets":["2469.61"]},"prev":"196ca81e21c4b1135e32aadc9d5042c22cb4489d9976b58868075720b669e80e","provider":"demo-ema-cross","seq":106,"v":1},"signer":null,"sig":null,"batch":{"root":"8a57dcf56189c6c23291215401e3540c5a0f7c1776337fae79baa920cf0c9487","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-09T13:31:50.951Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970637},"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"]}