{"format":"receipts-proof/1","hash":"eba205e0d757c52786e8d0a3dfefe4e9041dd8a62c3e8b0dff806a6bfc3ab835","provider":"demo-ema-cross","seq":74,"kind":"signal","issued_at":"2026-10-03T14:15:56.992Z","prev":"79e857d41db1428835d2e9497122d0d7ee740cbaf8691851a3024c511bc793a3","body":{"issued_at":"2026-10-03T14:15:56.992Z","kind":"signal","nonce":"94a7babdf041f0147d8851632e2ccf79","payload":{"entry":{"type":"market"},"expires_at":"2026-10-04T14:15:56.992Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"119.43","targets":["118.44"]},"prev":"79e857d41db1428835d2e9497122d0d7ee740cbaf8691851a3024c511bc793a3","provider":"demo-ema-cross","seq":74,"v":1},"signer":null,"sig":null,"batch":{"root":"eba205e0d757c52786e8d0a3dfefe4e9041dd8a62c3e8b0dff806a6bfc3ab835","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-03T14:16:56.931Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969745},"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"]}