{"format":"receipts-proof/1","hash":"1e176ddfc6d883f60adf5664f5fb3356cdec7509545b839f3fabd97e78097edc","provider":"demo-ema-cross","seq":22,"kind":"signal","issued_at":"2026-09-26T07:49:42.763Z","prev":"38a701707d882f8a5cd0cb3a8f6ace2445a0fab2de7ce706407825bed482564c","body":{"issued_at":"2026-09-26T07:49:42.763Z","kind":"signal","nonce":"6d1907ce842bc0ebe972e19ea7733eba","payload":{"entry":{"type":"market"},"expires_at":"2026-09-27T07:49:42.763Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"83885.8","targets":["84236.6"]},"prev":"38a701707d882f8a5cd0cb3a8f6ace2445a0fab2de7ce706407825bed482564c","provider":"demo-ema-cross","seq":22,"v":1},"signer":null,"sig":null,"batch":{"root":"1e176ddfc6d883f60adf5664f5fb3356cdec7509545b839f3fabd97e78097edc","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-26T08:05:56.781Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":968666},"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"]}