{"format":"receipts-proof/1","hash":"242d49b2ccf7593a33f3137f11e36ff8e2a2c7da5804ca443cab775fb2f023a8","provider":"demo-ema-cross","seq":138,"kind":"signal","issued_at":"2026-10-13T23:15:18.660Z","prev":"a4875004fb53780fe1581efea6337afca885b75f58cfd83100c3fde3d5cf559d","body":{"issued_at":"2026-10-13T23:15:18.660Z","kind":"signal","nonce":"f27ae1ae8695ebd7a8e70809f63cbd6b","payload":{"entry":{"type":"market"},"expires_at":"2026-10-14T23:15:18.660Z","market":{"kind":"perp","symbol":"ETHUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"2508.03","targets":["2484.86"]},"prev":"a4875004fb53780fe1581efea6337afca885b75f58cfd83100c3fde3d5cf559d","provider":"demo-ema-cross","seq":138,"v":1},"signer":null,"sig":null,"batch":{"root":"242d49b2ccf7593a33f3137f11e36ff8e2a2c7da5804ca443cab775fb2f023a8","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-13T23:15:24.354Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971318},"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"]}