{"format":"receipts-proof/1","hash":"81d73a9ef452126f673e3eb0378af78c4600c1c150a9b8e0c76b703964e1c4a6","provider":"demo-ema-cross","seq":100,"kind":"signal","issued_at":"2026-10-06T10:45:42.995Z","prev":"0817e0db040c4fe6cee84b71826783a9dc69905c5c4e66d919470e8f21373acc","body":{"issued_at":"2026-10-06T10:45:42.995Z","kind":"signal","nonce":"798f31567ff2604d61ad1695d0658de0","payload":{"entry":{"type":"market"},"expires_at":"2026-10-07T10:45:42.995Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"119.65","targets":["122.02"]},"prev":"0817e0db040c4fe6cee84b71826783a9dc69905c5c4e66d919470e8f21373acc","provider":"demo-ema-cross","seq":100,"v":1},"signer":null,"sig":null,"batch":{"root":"81d73a9ef452126f673e3eb0378af78c4600c1c150a9b8e0c76b703964e1c4a6","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-06T10:45:45.798Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970165},"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"]}