{"format":"receipts-proof/1","hash":"196ca81e21c4b1135e32aadc9d5042c22cb4489d9976b58868075720b669e80e","provider":"demo-ema-cross","seq":105,"kind":"signal","issued_at":"2026-10-09T12:00:50.805Z","prev":"c2bbf61ba537c94719af8338a6f5fc9d3767dc038d7e127486733bdb971dab0f","body":{"issued_at":"2026-10-09T12:00:50.805Z","kind":"signal","nonce":"30c281cc31da0ba757d1cce27e8e0a51","payload":{"entry":{"type":"market"},"expires_at":"2026-10-10T12:00:50.805Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"110.48","targets":["112.69"]},"prev":"c2bbf61ba537c94719af8338a6f5fc9d3767dc038d7e127486733bdb971dab0f","provider":"demo-ema-cross","seq":105,"v":1},"signer":null,"sig":null,"batch":{"root":"1fa8fc7c97094f10e35d5dbd6da84b2a3875cfcb70727029183b88681b2ab7af","index":1,"leaf_count":3,"proof":[{"side":"L","hash":"c2bbf61ba537c94719af8338a6f5fc9d3767dc038d7e127486733bdb971dab0f"},{"side":"R","hash":"384cddabbfd31244abfec937d22138c8c431607fce40020a328393f69bf1ff8d"}],"sealed_at":"2026-10-09T12:01:50.832Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970626},"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"]}