{"format":"receipts-proof/1","hash":"39f052ff9b7fab6f98fea66d9606e9fdbb0eaff91486b6112713597f41247790","provider":"demo-ema-cross","seq":90,"kind":"signal","issued_at":"2026-10-05T10:30:00.843Z","prev":"b99dce5c7ab8ec4d4039eb93ee721efc6b645c57ef17ef22be7fc8c38d0b831f","body":{"issued_at":"2026-10-05T10:30:00.843Z","kind":"signal","nonce":"aa59763cecc092c1d2f1f58de648a938","payload":{"entry":{"type":"market"},"expires_at":"2026-10-06T10:30:00.843Z","market":{"kind":"perp","symbol":"ETHUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"2727.24","targets":["2696.31"]},"prev":"b99dce5c7ab8ec4d4039eb93ee721efc6b645c57ef17ef22be7fc8c38d0b831f","provider":"demo-ema-cross","seq":90,"v":1},"signer":null,"sig":null,"batch":{"root":"39f052ff9b7fab6f98fea66d9606e9fdbb0eaff91486b6112713597f41247790","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-05T10:30:57.214Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970000},"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"]}