{"format":"receipts-proof/1","hash":"4e24eda895459bce8e704fe9e08cd353fa796901f6ae1daddf0f75ddef56c86d","provider":"demo-ema-cross","seq":153,"kind":"signal","issued_at":"2026-10-14T09:00:36.213Z","prev":"6caa61dcd40ac9082489d20c9e4032d18376f48b9ddd8419b176fad817b24317","body":{"issued_at":"2026-10-14T09:00:36.213Z","kind":"signal","nonce":"a84b4bffd6b01c52664ea85e09bc9a12","payload":{"entry":{"type":"market"},"expires_at":"2026-10-15T09:00:36.213Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"107.69","targets":["105.56"]},"prev":"6caa61dcd40ac9082489d20c9e4032d18376f48b9ddd8419b176fad817b24317","provider":"demo-ema-cross","seq":153,"v":1},"signer":null,"sig":null,"batch":{"root":"4e24eda895459bce8e704fe9e08cd353fa796901f6ae1daddf0f75ddef56c86d","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-14T09:00:36.787Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971383},"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"]}