{"format":"receipts-proof/1","hash":"90841bc814ebed4cddee2833c4d3d855573d042fcbd2099595a8ddb8f494992c","provider":"demo-ema-cross","seq":94,"kind":"signal","issued_at":"2026-10-05T15:00:01.234Z","prev":"1d4fda17ae0a3be6ab5ebe7548a126cfd075756586de5d4e43e87429eef61297","body":{"issued_at":"2026-10-05T15:00:01.234Z","kind":"signal","nonce":"295ff06cc7adc68617b48b3a381b0838","payload":{"entry":{"type":"market"},"expires_at":"2026-10-06T15:00:01.234Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"86080.9","targets":["84631.3"]},"prev":"1d4fda17ae0a3be6ab5ebe7548a126cfd075756586de5d4e43e87429eef61297","provider":"demo-ema-cross","seq":94,"v":1},"signer":null,"sig":null,"batch":{"root":"90841bc814ebed4cddee2833c4d3d855573d042fcbd2099595a8ddb8f494992c","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-05T15:02:57.654Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970047},"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"]}