{"format":"receipts-proof/1","hash":"a4875004fb53780fe1581efea6337afca885b75f58cfd83100c3fde3d5cf559d","provider":"demo-ema-cross","seq":137,"kind":"signal","issued_at":"2026-10-13T21:45:18.491Z","prev":"2f1e03dc47c61ef20cd13290b59ae0900c67844ca4f676baa58ac18aa78c04dc","body":{"issued_at":"2026-10-13T21:45:18.491Z","kind":"signal","nonce":"fe4bf04381fe6b08ae2f9e33c4e42923","payload":{"entry":{"type":"market"},"expires_at":"2026-10-14T21:45:18.491Z","market":{"kind":"perp","symbol":"ETHUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"2502.13","targets":["2525.78"]},"prev":"2f1e03dc47c61ef20cd13290b59ae0900c67844ca4f676baa58ac18aa78c04dc","provider":"demo-ema-cross","seq":137,"v":1},"signer":null,"sig":null,"batch":{"root":"a4875004fb53780fe1581efea6337afca885b75f58cfd83100c3fde3d5cf559d","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-13T21:45:24.197Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971315},"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"]}