{"format":"receipts-proof/1","hash":"57103423012b69d0876da19f9161c6762210b94df97e4fb6863b474b06cc43c6","provider":"demo-ema-cross","seq":95,"kind":"signal","issued_at":"2026-10-05T19:15:01.472Z","prev":"90841bc814ebed4cddee2833c4d3d855573d042fcbd2099595a8ddb8f494992c","body":{"issued_at":"2026-10-05T19:15:01.472Z","kind":"signal","nonce":"7d2b24150ef9cb342ba7a224234ae5cd","payload":{"entry":{"type":"market"},"expires_at":"2026-10-06T19:15:01.472Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"119.65","targets":["121.12"]},"prev":"90841bc814ebed4cddee2833c4d3d855573d042fcbd2099595a8ddb8f494992c","provider":"demo-ema-cross","seq":95,"v":1},"signer":null,"sig":null,"batch":{"root":"57103423012b69d0876da19f9161c6762210b94df97e4fb6863b474b06cc43c6","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-05T19:15:58.163Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970069},"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"]}