{"format":"receipts-proof/1","hash":"0c06d57e995ec867090efa73caf926576dc5b85192caaf4bc13cc583b6619bea","provider":"demo-ema-cross","seq":3,"kind":"signal","issued_at":"2026-09-23T22:02:39.377Z","prev":"77ade1aed7f6f4e5b2894d1f10f1c778c05d26e09e2ebe452ccc1eabb783514c","body":{"issued_at":"2026-09-23T22:02:39.377Z","kind":"signal","nonce":"fa1a27558c59a715da320de88157160d","payload":{"entry":{"type":"market"},"expires_at":"2026-09-24T22:02:39.377Z","market":{"kind":"perp","symbol":"ETHUSDT","venue":"binance-usdm"},"note":"Demo strategy: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"2666.5","targets":["2695.8"]},"prev":"77ade1aed7f6f4e5b2894d1f10f1c778c05d26e09e2ebe452ccc1eabb783514c","provider":"demo-ema-cross","seq":3,"v":1},"signer":null,"sig":null,"batch":{"root":"0c06d57e995ec867090efa73caf926576dc5b85192caaf4bc13cc583b6619bea","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-23T22:03:29.664Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":968328},"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"]}