{"format":"receipts-proof/1","hash":"545bc5c984aa5116febf4175bf4da920bc04cc5dc9d0b6faa332a95a8131e5cd","provider":"demo-ema-cross","seq":155,"kind":"signal","issued_at":"2026-10-14T09:15:36.234Z","prev":"9681badaf4f0778c7b2430e8f9f7d22732cb89a1f42b119ff54b0ba48974acc4","body":{"issued_at":"2026-10-14T09:15:36.234Z","kind":"signal","nonce":"02a6f5bf81c8d19473423a193c9abb99","payload":{"entry":{"type":"market"},"expires_at":"2026-10-15T09:15:36.234Z","market":{"kind":"perp","symbol":"ETHUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"2516.86","targets":["2482.93"]},"prev":"9681badaf4f0778c7b2430e8f9f7d22732cb89a1f42b119ff54b0ba48974acc4","provider":"demo-ema-cross","seq":155,"v":1},"signer":null,"sig":null,"batch":{"root":"64b0dd37b1e6dca8bd8f7b124c07b33608bdc20e8e009951fb7e9b73e50398a4","index":1,"leaf_count":2,"proof":[{"side":"L","hash":"9681badaf4f0778c7b2430e8f9f7d22732cb89a1f42b119ff54b0ba48974acc4"}],"sealed_at":"2026-10-14T09:15:36.797Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971388},"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"]}