{"format":"receipts-proof/1","hash":"ce0ec543dba5dfcd7d5c40283c175481382805929a309b7ca4e96c9732089190","provider":"demo-ema-cross","seq":45,"kind":"signal","issued_at":"2026-09-28T19:45:46.722Z","prev":"1a2950b45dd60fe138ccd30722ebc6e075c71540d2f94299a40286915bfc0489","body":{"issued_at":"2026-09-28T19:45:46.722Z","kind":"signal","nonce":"834ff915a00aa4e4c58924bf9cae4051","payload":{"entry":{"type":"market"},"expires_at":"2026-09-29T19:45:46.722Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"119.53","targets":["115.75"]},"prev":"1a2950b45dd60fe138ccd30722ebc6e075c71540d2f94299a40286915bfc0489","provider":"demo-ema-cross","seq":45,"v":1},"signer":null,"sig":null,"batch":{"root":"ce0ec543dba5dfcd7d5c40283c175481382805929a309b7ca4e96c9732089190","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-28T19:46:46.445Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969044},"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"]}