{"format":"receipts-proof/1","hash":"568436af986f4094d92cd8a6b174fec14416608f6ca372870d84d5e2cee6dfa7","provider":"demo-ema-cross","seq":156,"kind":"signal","issued_at":"2026-10-14T12:15:36.654Z","prev":"545bc5c984aa5116febf4175bf4da920bc04cc5dc9d0b6faa332a95a8131e5cd","body":{"issued_at":"2026-10-14T12:15:36.654Z","kind":"signal","nonce":"31ca556b51e27581b62808aa7d616908","payload":{"entry":{"type":"market"},"expires_at":"2026-10-15T12:15:36.654Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"83529.3","targets":["84336.6"]},"prev":"545bc5c984aa5116febf4175bf4da920bc04cc5dc9d0b6faa332a95a8131e5cd","provider":"demo-ema-cross","seq":156,"v":1},"signer":null,"sig":null,"batch":{"root":"326f20e430cadf0243e70f36d55d156435acaf9995de3d66c76dbc3f8cc4031f","index":0,"leaf_count":5,"proof":[{"side":"R","hash":"f5955b32325ef531f11a03779f023bb97b9e3b778876472ca5b96f20e05ba0f1"},{"side":"R","hash":"1165de27e33d7e68cd89195b76f297bb317a7942ded8c02d353fc75243af8278"},{"side":"R","hash":"fa5e6552e805ff2376b28c29d4badae4ea404542600f6010203abe8e2f48a7c5"}],"sealed_at":"2026-10-14T12:15:38.591Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971402},"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"]}