{"format":"receipts-proof/1","hash":"125921d51fa9ba39dfa23fa03edce4869af45ac5b4ccbc23c41976b02a4295fe","provider":"demo-ema-cross","seq":10,"kind":"signal","issued_at":"2026-09-24T02:46:11.827Z","prev":"718430ffbc67daed2df45df8fa9cdfc84c26f3bf7446c27dfd99e1ddddb9fdca","body":{"issued_at":"2026-09-24T02:46:11.827Z","kind":"signal","nonce":"04e4b6c363f65f552081c62cceb31bc5","payload":{"entry":{"type":"market"},"expires_at":"2026-09-25T02:46:11.827Z","market":{"kind":"perp","symbol":"ETHUSDT","venue":"binance-usdm"},"note":"Demo strategy: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"2672.8","targets":["2708.4"]},"prev":"718430ffbc67daed2df45df8fa9cdfc84c26f3bf7446c27dfd99e1ddddb9fdca","provider":"demo-ema-cross","seq":10,"v":1},"signer":null,"sig":null,"batch":{"root":"125921d51fa9ba39dfa23fa03edce4869af45ac5b4ccbc23c41976b02a4295fe","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-24T02:47:02.107Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":968345},"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"]}