{"format":"receipts-proof/1","hash":"761579f1743b1a44e2d9a8af3a38221aece22ac29a674f85723442cd3382052c","provider":"demo-ema-cross","seq":166,"kind":"signal","issued_at":"2026-10-20T13:00:55.598Z","prev":"048b0b2af73ba0e3e71e95fbc29186ea542e495496f5bc381f5205b86de6a550","body":{"issued_at":"2026-10-20T13:00:55.598Z","kind":"signal","nonce":"77b87a4a21410b4eefa5c58deb94eada","payload":{"entry":{"type":"market"},"expires_at":"2026-10-21T13:00:55.598Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"103.9","targets":["105.55"]},"prev":"048b0b2af73ba0e3e71e95fbc29186ea542e495496f5bc381f5205b86de6a550","provider":"demo-ema-cross","seq":166,"v":1},"signer":null,"sig":null,"batch":{"root":"c53affb45c60fcd0bfd7f58db96187cbbdbc01c1b79393fdf30442b019ea5fbb","index":1,"leaf_count":2,"proof":[{"side":"L","hash":"048b0b2af73ba0e3e71e95fbc29186ea542e495496f5bc381f5205b86de6a550"}],"sealed_at":"2026-10-20T13:01:49.962Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":972334},"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"]}