{"format":"receipts-proof/1","hash":"913c8b5fc6c1a33e0bdf89c80c56f57f121b9d67183770f408f36a1f3b2d7797","provider":"demo-ema-cross","seq":47,"kind":"signal","issued_at":"2026-09-28T23:30:05.513Z","prev":"6a1bf8abf3c53e89215fa800b0af9377893754606e98ed66138c1f982745ea59","body":{"issued_at":"2026-09-28T23:30:05.513Z","kind":"signal","nonce":"a78a262d76aa2fddee97a98857681a32","payload":{"entry":{"type":"market"},"expires_at":"2026-09-29T23:30:05.513Z","market":{"kind":"perp","symbol":"ETHUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"2679.23","targets":["2710.89"]},"prev":"6a1bf8abf3c53e89215fa800b0af9377893754606e98ed66138c1f982745ea59","provider":"demo-ema-cross","seq":47,"v":1},"signer":null,"sig":null,"batch":{"root":"913c8b5fc6c1a33e0bdf89c80c56f57f121b9d67183770f408f36a1f3b2d7797","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-28T23:31:05.496Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969067},"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"]}