{"format":"receipts-proof/1","hash":"1206d983e55f3be11b93d3ecc5d9e31f271255a7c7e8468440646f766f0b85e2","provider":"demo-ema-cross","seq":60,"kind":"signal","issued_at":"2026-09-30T17:45:05.942Z","prev":"cdf5f79ec5e59390d897ae8402ad398a9f3039e4a3a2e3d361e0a405cb7d31b4","body":{"issued_at":"2026-09-30T17:45:05.942Z","kind":"signal","nonce":"564cc567509676e0e8a7a91b071c0ceb","payload":{"entry":{"type":"market"},"expires_at":"2026-10-01T17:45:05.942Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"120.06","targets":["116.74"]},"prev":"cdf5f79ec5e59390d897ae8402ad398a9f3039e4a3a2e3d361e0a405cb7d31b4","provider":"demo-ema-cross","seq":60,"v":1},"signer":null,"sig":null,"batch":{"root":"1206d983e55f3be11b93d3ecc5d9e31f271255a7c7e8468440646f766f0b85e2","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-30T17:45:55.989Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969332},"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"]}