{"format":"receipts-proof/1","hash":"38eb3ac18a9e35ca4f1ee108864ab3d60ba5da794b1b55bc57487f14a1b41596","provider":"demo-ema-cross","seq":80,"kind":"signal","issued_at":"2026-10-04T19:00:20.581Z","prev":"9763f0f5ef80f6bbbe263181db75500df7a5d84ab92daffaa9f6c61129fa5f56","body":{"issued_at":"2026-10-04T19:00:20.581Z","kind":"signal","nonce":"a7833aa77b61df89458ce3ff3680ebeb","payload":{"entry":{"type":"market"},"expires_at":"2026-10-05T19:00:20.581Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"121.76","targets":["120.8"]},"prev":"9763f0f5ef80f6bbbe263181db75500df7a5d84ab92daffaa9f6c61129fa5f56","provider":"demo-ema-cross","seq":80,"v":1},"signer":null,"sig":null,"batch":{"root":"38eb3ac18a9e35ca4f1ee108864ab3d60ba5da794b1b55bc57487f14a1b41596","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-04T19:01:20.574Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969890},"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"]}