{"format":"receipts-proof/1","hash":"b7f4fe2fcd878603641d7e6234506ace7be2d9ec191f943e3f3a6f6f96f533cf","provider":"demo-ema-cross","seq":127,"kind":"signal","issued_at":"2026-10-12T20:15:10.096Z","prev":"02f8161056a6eb119dd4fcfd0367ed0d811b7561ec1effcaa83b78386d630849","body":{"issued_at":"2026-10-12T20:15:10.096Z","kind":"signal","nonce":"53b20fa08ac26d017124d5be2fc2b3e7","payload":{"entry":{"type":"market"},"expires_at":"2026-10-13T20:15:10.096Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"82675","targets":["83483.1"]},"prev":"02f8161056a6eb119dd4fcfd0367ed0d811b7561ec1effcaa83b78386d630849","provider":"demo-ema-cross","seq":127,"v":1},"signer":null,"sig":null,"batch":{"root":"381d7bbaef9d380c418c84195d5c4161b05d4f40ea30b97feca457df86fe907d","index":0,"leaf_count":2,"proof":[{"side":"R","hash":"800e06afffbb801ece9da7908c86359a13db760bf58fc2575c429b6d8f82baa9"}],"sealed_at":"2026-10-12T20:15:13.462Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971138},"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"]}