{"format":"receipts-proof/1","hash":"97f91cd8c7844a5fea33e09ec184bb851f18c7a21f1f149604c741a55a43f7f0","provider":"demo-ema-cross","seq":91,"kind":"signal","issued_at":"2026-10-05T12:00:00.915Z","prev":"39f052ff9b7fab6f98fea66d9606e9fdbb0eaff91486b6112713597f41247790","body":{"issued_at":"2026-10-05T12:00:00.915Z","kind":"signal","nonce":"619e63eb7ee3680a7f4ea5c3831b016b","payload":{"entry":{"type":"market"},"expires_at":"2026-10-06T12:00:00.915Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"85872.1","targets":["86772.2"]},"prev":"39f052ff9b7fab6f98fea66d9606e9fdbb0eaff91486b6112713597f41247790","provider":"demo-ema-cross","seq":91,"v":1},"signer":null,"sig":null,"batch":{"root":"97f91cd8c7844a5fea33e09ec184bb851f18c7a21f1f149604c741a55a43f7f0","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-05T12:00:57.336Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970015},"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"]}