{"format":"receipts-proof/1","hash":"aca0e38fcffb0191dd3c01280c4aec17bd62af8454548d55e9a2fac036c4b462","provider":"demo-ema-cross","seq":17,"kind":"signal","issued_at":"2026-09-25T09:00:00.595Z","prev":"92defdbcdfdf99cea842bf1a487af4ee94cae091e5981bc9759631995c9ada28","body":{"issued_at":"2026-09-25T09:00:00.595Z","kind":"signal","nonce":"db1f0262a6d57dee16e6bc882f1ced70","payload":{"entry":{"type":"market"},"expires_at":"2026-09-26T09:00:00.595Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"84046.8","targets":["85035"]},"prev":"92defdbcdfdf99cea842bf1a487af4ee94cae091e5981bc9759631995c9ada28","provider":"demo-ema-cross","seq":17,"v":1},"signer":null,"sig":null,"batch":{"root":"aca0e38fcffb0191dd3c01280c4aec17bd62af8454548d55e9a2fac036c4b462","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-25T09:00:50.496Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":968532},"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"]}