{"format":"receipts-proof/1","hash":"e3227fefbeadd2589244046eca433adb3c1e6810606cd58be20d51d172310ad0","provider":"demo-ema-cross","seq":20,"kind":"signal","issued_at":"2026-09-25T23:00:28.577Z","prev":"ea8f0842ae5240802d574f869c4f76b4afc032b0459136aa8470065607fa291f","body":{"issued_at":"2026-09-25T23:00:28.577Z","kind":"signal","nonce":"5bcae2f1ba5e941572b0f672207f5f63","payload":{"entry":{"type":"market"},"expires_at":"2026-09-26T23:00:28.577Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"83810.7","targets":["84477.1"]},"prev":"ea8f0842ae5240802d574f869c4f76b4afc032b0459136aa8470065607fa291f","provider":"demo-ema-cross","seq":20,"v":1},"signer":null,"sig":null,"batch":{"root":"9bf68494adadabbb70eb66735d059ec6fdf27998d2f8f952f2793dfc9fbf62e9","index":0,"leaf_count":2,"proof":[{"side":"R","hash":"24d63ea6c4adefef3d309737525af1624f99746a6e1e43ce8c91ceca25394745"}],"sealed_at":"2026-09-25T23:10:25.766Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":968596},"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"]}