{"format":"receipts-proof/1","hash":"2ac965cb854a6069940dda5c81f039ab61fb35b9fe24f914d2b9e6a836c010b8","provider":"demo-ema-cross","seq":188,"kind":"signal","issued_at":"2026-11-08T15:09:04.480Z","prev":"b1e6201c5a562eb046533952c40656a4090d0604a28e332c2d19a23b3fe017b2","body":{"issued_at":"2026-11-08T15:09:04.480Z","kind":"signal","nonce":"9fc369fe9019aca4b32fc3c975cf5728","payload":{"entry":{"type":"market"},"expires_at":"2026-11-09T15:09:04.480Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"89.17","targets":["90.25"]},"prev":"b1e6201c5a562eb046533952c40656a4090d0604a28e332c2d19a23b3fe017b2","provider":"demo-ema-cross","seq":188,"v":1},"signer":null,"sig":null,"batch":{"root":"2ac965cb854a6069940dda5c81f039ab61fb35b9fe24f914d2b9e6a836c010b8","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-11-08T15:10:04.493Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":975079},"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"]}