{"format":"receipts-proof/1","hash":"7c3f532bfada7946c92a9f6be7a3a78eeec54ee9f0eeac8d5991bbddac7866dd","provider":"demo-ema-cross","seq":145,"kind":"signal","issued_at":"2026-10-14T03:00:18.795Z","prev":"6a57262491d5701dd3d2dff30ebc9ab50f37a35305592bc7a1b9180c43d44f94","body":{"issued_at":"2026-10-14T03:00:18.795Z","kind":"signal","nonce":"ebf6a846f56bdedac022e3578d45dca1","payload":{"entry":{"type":"market"},"expires_at":"2026-10-15T03:00:18.795Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"83327","targets":["84171.3"]},"prev":"6a57262491d5701dd3d2dff30ebc9ab50f37a35305592bc7a1b9180c43d44f94","provider":"demo-ema-cross","seq":145,"v":1},"signer":null,"sig":null,"batch":{"root":"ac46f69722ee38589d5a7983d1e3d51230965d40589adab8294614073ece3023","index":0,"leaf_count":2,"proof":[{"side":"R","hash":"d2191db8d4f15486ba50145a7d6be0b5519d07586f0f351e3e45658388279fd6"}],"sealed_at":"2026-10-14T03:01:18.822Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971344},"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"]}