{"format":"receipts-proof/1","hash":"ec3d9bc7cb17d2442cfd04ab9b4c1178e91ccf6c232a6cb244ed6cd1b3a9ae05","provider":"demo-ema-cross","seq":111,"kind":"signal","issued_at":"2026-10-10T13:45:24.042Z","prev":"f5fa4711305fbe4f154263ea0d83a51a527a037228cdcddc3e62002e326ae7fc","body":{"issued_at":"2026-10-10T13:45:24.042Z","kind":"signal","nonce":"ee6a7c82bc6879fd992c9f3f4711999d","payload":{"entry":{"type":"market"},"expires_at":"2026-10-11T13:45:24.042Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"109.47","targets":["110.42"]},"prev":"f5fa4711305fbe4f154263ea0d83a51a527a037228cdcddc3e62002e326ae7fc","provider":"demo-ema-cross","seq":111,"v":1},"signer":null,"sig":null,"batch":{"root":"ec3d9bc7cb17d2442cfd04ab9b4c1178e91ccf6c232a6cb244ed6cd1b3a9ae05","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-10T13:46:24.311Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970780},"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"]}