{"format":"receipts-proof/1","hash":"de53a570f310c9a3c87bb8ff5b0dbe9352431da95b0dbff5c7e9b109c597089c","provider":"demo-ema-cross","seq":53,"kind":"signal","issued_at":"2026-09-29T20:45:32.241Z","prev":"6ed22a03d4520e688a930cbfce1a258f57cdc65a6bae304f1faed83d2d8894fc","body":{"issued_at":"2026-09-29T20:45:32.241Z","kind":"signal","nonce":"fd9f2e35dcdb1242f6ab9fa1af4d7f88","payload":{"entry":{"type":"market"},"expires_at":"2026-09-30T20:45:32.241Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"118.32","targets":["120.39"]},"prev":"6ed22a03d4520e688a930cbfce1a258f57cdc65a6bae304f1faed83d2d8894fc","provider":"demo-ema-cross","seq":53,"v":1},"signer":null,"sig":null,"batch":{"root":"de53a570f310c9a3c87bb8ff5b0dbe9352431da95b0dbff5c7e9b109c597089c","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-29T20:46:22.320Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969201},"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"]}