{"format":"receipts-proof/1","hash":"e29b6bca50834604fab8656a271093856c932e9d9b038f012ab113940ebcc03e","provider":"demo-ema-cross","seq":15,"kind":"signal","issued_at":"2026-09-25T08:45:00.556Z","prev":"24b1f54e3c2bbca9e2ce51e4330aee67231a6384620c7f87fa38f84855bdbe0e","body":{"issued_at":"2026-09-25T08:45:00.556Z","kind":"signal","nonce":"d8242501807f7d57ab940fd877f2bd5e","payload":{"entry":{"type":"market"},"expires_at":"2026-09-26T08:45:00.556Z","market":{"kind":"perp","symbol":"ETHUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"2672.73","targets":["2711.38"]},"prev":"24b1f54e3c2bbca9e2ce51e4330aee67231a6384620c7f87fa38f84855bdbe0e","provider":"demo-ema-cross","seq":15,"v":1},"signer":null,"sig":null,"batch":{"root":"c2cc1eda8cbbbac049f27a8f631dbb16d9ef540ec41ea546edfb994af81ce922","index":0,"leaf_count":2,"proof":[{"side":"R","hash":"92defdbcdfdf99cea842bf1a487af4ee94cae091e5981bc9759631995c9ada28"}],"sealed_at":"2026-09-25T08:45:50.461Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":968529},"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"]}