{"format":"receipts-proof/1","hash":"2388cb6e126bcb819bd9b684200289dcbc0f27d1c17dceaa8d7d23696c51835c","provider":"demo-ema-cross","seq":48,"kind":"signal","issued_at":"2026-09-29T01:15:05.691Z","prev":"913c8b5fc6c1a33e0bdf89c80c56f57f121b9d67183770f408f36a1f3b2d7797","body":{"issued_at":"2026-09-29T01:15:05.691Z","kind":"signal","nonce":"724579ab6bd1558570525efe4a7a4811","payload":{"entry":{"type":"market"},"expires_at":"2026-09-30T01:15:05.691Z","market":{"kind":"perp","symbol":"ETHUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"2680.07","targets":["2646.79"]},"prev":"913c8b5fc6c1a33e0bdf89c80c56f57f121b9d67183770f408f36a1f3b2d7797","provider":"demo-ema-cross","seq":48,"v":1},"signer":null,"sig":null,"batch":{"root":"2388cb6e126bcb819bd9b684200289dcbc0f27d1c17dceaa8d7d23696c51835c","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-29T01:16:05.682Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969082},"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"]}