{"format":"receipts-proof/1","hash":"83f65a63dfc17a21f285d8fd892d4e1f3c744e0ae58c918ce6d07b6ec3576428","provider":"demo-ema-cross","seq":96,"kind":"signal","issued_at":"2026-10-06T08:15:40.165Z","prev":"57103423012b69d0876da19f9161c6762210b94df97e4fb6863b474b06cc43c6","body":{"issued_at":"2026-10-06T08:15:40.165Z","kind":"signal","nonce":"852919480e8acaaeec9e74c62f23e927","payload":{"entry":{"type":"market"},"expires_at":"2026-10-07T08:15:40.165Z","market":{"kind":"perp","symbol":"ETHUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"2703.03","targets":["2724.36"]},"prev":"57103423012b69d0876da19f9161c6762210b94df97e4fb6863b474b06cc43c6","provider":"demo-ema-cross","seq":96,"v":1},"signer":null,"sig":null,"batch":{"root":"467d57f76f7e205ef677be90e63b99f529699925caeaf52920969c9b408844d7","index":0,"leaf_count":3,"proof":[{"side":"R","hash":"66d45a5b877363fcb6a7e1e8d6236a49f0365a3b0f6a37027b18370a0db7825f"},{"side":"R","hash":"9edc50f281d56e5d5b082bd6fc90306c8c1f3e81c0e11eaf9a17ecafe7d7567f"}],"sealed_at":"2026-10-06T08:16:41.430Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970153},"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"]}