{"format":"receipts-proof/1","hash":"b27d2d087ac2a836174630f71f6317704974081ac361903ad4450681e9b0ffd4","provider":"demo-ema-cross","seq":28,"kind":"signal","issued_at":"2026-09-26T19:45:38.290Z","prev":"c6350945cd9c13c671e2333644db796efc30cedf529d750b952f98a317bdafc6","body":{"issued_at":"2026-09-26T19:45:38.290Z","kind":"signal","nonce":"7f1b4ac382b11f12971576223f1ad192","payload":{"entry":{"type":"market"},"expires_at":"2026-09-27T19:45:38.290Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"121.59","targets":["120.06"]},"prev":"c6350945cd9c13c671e2333644db796efc30cedf529d750b952f98a317bdafc6","provider":"demo-ema-cross","seq":28,"v":1},"signer":null,"sig":null,"batch":{"root":"b27d2d087ac2a836174630f71f6317704974081ac361903ad4450681e9b0ffd4","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-26T19:46:38.313Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":968738},"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"]}