{"format":"receipts-proof/1","hash":"1a2950b45dd60fe138ccd30722ebc6e075c71540d2f94299a40286915bfc0489","provider":"demo-ema-cross","seq":44,"kind":"signal","issued_at":"2026-09-28T16:30:36.782Z","prev":"ac9b9cb7888c49782dc83eb9f54edbb7642e66973b948dcd183f46368d207b7d","body":{"issued_at":"2026-09-28T16:30:36.782Z","kind":"signal","nonce":"9a9f0c3889be1c2a0cf72cab83636d73","payload":{"entry":{"type":"market"},"expires_at":"2026-09-29T16:30:36.782Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"118.58","targets":["122.66"]},"prev":"ac9b9cb7888c49782dc83eb9f54edbb7642e66973b948dcd183f46368d207b7d","provider":"demo-ema-cross","seq":44,"v":1},"signer":null,"sig":null,"batch":{"root":"1a2950b45dd60fe138ccd30722ebc6e075c71540d2f94299a40286915bfc0489","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-28T16:31:26.980Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969030},"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"]}