{"format":"receipts-proof/1","hash":"1342e7fbbed504b412a9d98d476104fca65a50d715bf4b8cf9443e7734dec0b9","provider":"demo-ema-cross","seq":87,"kind":"signal","issued_at":"2026-10-05T07:45:17.209Z","prev":"eac10fe11547fdfcb595ce9312b82dacceec25620a01d89f8b94e047ef14a8e5","body":{"issued_at":"2026-10-05T07:45:17.209Z","kind":"signal","nonce":"cbcb6b249463ada3efab3de6674feed5","payload":{"entry":{"type":"market"},"expires_at":"2026-10-06T07:45:17.209Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"85973","targets":["87094"]},"prev":"eac10fe11547fdfcb595ce9312b82dacceec25620a01d89f8b94e047ef14a8e5","provider":"demo-ema-cross","seq":87,"v":1},"signer":null,"sig":null,"batch":{"root":"1342e7fbbed504b412a9d98d476104fca65a50d715bf4b8cf9443e7734dec0b9","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-05T07:46:17.199Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969981},"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"]}