{"format":"receipts-proof/1","hash":"d5c3de1c2e34b45cf46bce9c9407d3fe4a90a8a2db43f1dcaa95b3127fe2da0a","provider":"demo-ema-cross","seq":135,"kind":"signal","issued_at":"2026-10-13T20:45:18.275Z","prev":"641aa9524aae8ada644fe1c792bf572faeaacd159e5bd1cbd4e34dc5cb8ca591","body":{"issued_at":"2026-10-13T20:45:18.275Z","kind":"signal","nonce":"773d6c23946967071cded1edd606e9e2","payload":{"entry":{"type":"market"},"expires_at":"2026-10-14T20:45:18.275Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"107.67","targets":["105.98"]},"prev":"641aa9524aae8ada644fe1c792bf572faeaacd159e5bd1cbd4e34dc5cb8ca591","provider":"demo-ema-cross","seq":135,"v":1},"signer":null,"sig":null,"batch":{"root":"d5c3de1c2e34b45cf46bce9c9407d3fe4a90a8a2db43f1dcaa95b3127fe2da0a","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-13T20:51:24.014Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971303},"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"]}