{"format":"receipts-proof/1","hash":"ce11b57eff040fcd5accfea3ce87eeab699ca8a54a53763fe554dd24265ce5e4","provider":"demo-ema-cross","seq":66,"kind":"signal","issued_at":"2026-10-01T23:00:32.439Z","prev":"43bfefe8d1f9854498194f9b00353f2018cf05af038613178d6e64e486a13586","body":{"issued_at":"2026-10-01T23:00:32.439Z","kind":"signal","nonce":"701ecb88ea1f54b2418529c55fe94b18","payload":{"entry":{"type":"market"},"expires_at":"2026-10-02T23:00:32.439Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"117.68","targets":["119.36"]},"prev":"43bfefe8d1f9854498194f9b00353f2018cf05af038613178d6e64e486a13586","provider":"demo-ema-cross","seq":66,"v":1},"signer":null,"sig":null,"batch":{"root":"ce11b57eff040fcd5accfea3ce87eeab699ca8a54a53763fe554dd24265ce5e4","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-01T23:01:30.600Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969503},"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"]}