{"format":"receipts-proof/1","hash":"b99dce5c7ab8ec4d4039eb93ee721efc6b645c57ef17ef22be7fc8c38d0b831f","provider":"demo-ema-cross","seq":89,"kind":"signal","issued_at":"2026-10-05T09:45:00.751Z","prev":"3103879eb58f26e078a379303e1350c2bf3121094021d4dd9ad6aece140cb49d","body":{"issued_at":"2026-10-05T09:45:00.751Z","kind":"signal","nonce":"4c9a4befaebf672121de3a675fdd9df7","payload":{"entry":{"type":"market"},"expires_at":"2026-10-06T09:45:00.751Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"121.24","targets":["119.38"]},"prev":"3103879eb58f26e078a379303e1350c2bf3121094021d4dd9ad6aece140cb49d","provider":"demo-ema-cross","seq":89,"v":1},"signer":null,"sig":null,"batch":{"root":"b99dce5c7ab8ec4d4039eb93ee721efc6b645c57ef17ef22be7fc8c38d0b831f","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-05T09:45:57.146Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969995},"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"]}