{"format":"receipts-proof/1","hash":"02f8161056a6eb119dd4fcfd0367ed0d811b7561ec1effcaa83b78386d630849","provider":"demo-ema-cross","seq":126,"kind":"signal","issued_at":"2026-10-12T00:06:23.494Z","prev":"f706e8b55ae94f696ff6b1e112a577cc28a83bca863e8cf8d253f11f3c074261","body":{"issued_at":"2026-10-12T00:06:23.494Z","kind":"signal","nonce":"a79361a9bb7c4041734d5aa0eaa0e04d","payload":{"entry":{"type":"market"},"expires_at":"2026-10-13T00:06:23.494Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"110.74","targets":["112.43"]},"prev":"f706e8b55ae94f696ff6b1e112a577cc28a83bca863e8cf8d253f11f3c074261","provider":"demo-ema-cross","seq":126,"v":1},"signer":null,"sig":null,"batch":{"root":"02f8161056a6eb119dd4fcfd0367ed0d811b7561ec1effcaa83b78386d630849","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-12T00:21:42.706Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971011},"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"]}