{"format":"receipts-proof/1","hash":"3c6d0a3ac8a3538860e818fb67b5598c430d0d4f131b08d54c712760095609fd","provider":"demo-ema-cross","seq":98,"kind":"signal","issued_at":"2026-10-06T08:30:40.644Z","prev":"6cb145510c195e82c10cd96e972fe23a20bcc5ddcd01ef7edcc1288a1ea6790c","body":{"issued_at":"2026-10-06T08:30:40.644Z","kind":"signal","nonce":"e2deb104a9d50d1026a9d378b24d288a","payload":{"entry":{"type":"market"},"expires_at":"2026-10-07T08:30:40.644Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"120.07","targets":["121.42"]},"prev":"6cb145510c195e82c10cd96e972fe23a20bcc5ddcd01ef7edcc1288a1ea6790c","provider":"demo-ema-cross","seq":98,"v":1},"signer":null,"sig":null,"batch":{"root":"d5190f2961cb016930d77827ce200c033458a6cc16ee6d4dc9d5b4f601ec84a4","index":1,"leaf_count":2,"proof":[{"side":"L","hash":"6cb145510c195e82c10cd96e972fe23a20bcc5ddcd01ef7edcc1288a1ea6790c"}],"sealed_at":"2026-10-06T08:31:41.761Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970153},"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"]}