{"format":"receipts-proof/1","hash":"9805ac944b7a65d8b68cc7e755ac4d6e7b99a8bbcd3e0d6b3c34557b05b48e87","provider":"demo-ema-cross","seq":116,"kind":"signal","issued_at":"2026-10-11T02:42:34.112Z","prev":"39b7b0a85e568029f6502ed75ecac94827352cc8114bb10963eefe820214db40","body":{"issued_at":"2026-10-11T02:42:34.112Z","kind":"signal","nonce":"080febc310679380f8bddab2dbed399f","payload":{"entry":{"type":"market"},"expires_at":"2026-10-12T02:42:34.112Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"82931.2","targets":["83158"]},"prev":"39b7b0a85e568029f6502ed75ecac94827352cc8114bb10963eefe820214db40","provider":"demo-ema-cross","seq":116,"v":1},"signer":null,"sig":null,"batch":{"root":"9805ac944b7a65d8b68cc7e755ac4d6e7b99a8bbcd3e0d6b3c34557b05b48e87","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-11T02:59:31.173Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970863},"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"]}