{"format":"receipts-proof/1","hash":"2d0c2390fee43ea5b1105d4113dd7410a7168cac186ba65d0645842d3a937acc","provider":"demo-ema-cross","seq":164,"kind":"signal","issued_at":"2026-10-15T14:45:51.647Z","prev":"cafa5df16ed5ab467419ccac70675ce6694ba2f1e4fc4453bff8267e331899bc","body":{"issued_at":"2026-10-15T14:45:51.647Z","kind":"signal","nonce":"be66bfcd72b22a7bdc9f999cbdc6b886","payload":{"entry":{"type":"market"},"expires_at":"2026-10-16T14:45:51.647Z","market":{"kind":"perp","symbol":"ETHUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"2355.8","targets":["2438.26"]},"prev":"cafa5df16ed5ab467419ccac70675ce6694ba2f1e4fc4453bff8267e331899bc","provider":"demo-ema-cross","seq":164,"v":1},"signer":null,"sig":null,"batch":{"root":"2d0c2390fee43ea5b1105d4113dd7410a7168cac186ba65d0645842d3a937acc","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-15T14:45:53.778Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971591},"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"]}