{"format":"receipts-proof/1","hash":"c6350945cd9c13c671e2333644db796efc30cedf529d750b952f98a317bdafc6","provider":"demo-ema-cross","seq":27,"kind":"signal","issued_at":"2026-09-26T19:00:38.216Z","prev":"1098b2fe264840e8c18f23190fbabff467cdd72978b922a2f1e7dcde6ab26c08","body":{"issued_at":"2026-09-26T19:00:38.216Z","kind":"signal","nonce":"c5106d696cd1d298cbdbee32f7514b1f","payload":{"entry":{"type":"market"},"expires_at":"2026-09-27T19:00:38.216Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"84068.5","targets":["83775.6"]},"prev":"1098b2fe264840e8c18f23190fbabff467cdd72978b922a2f1e7dcde6ab26c08","provider":"demo-ema-cross","seq":27,"v":1},"signer":null,"sig":null,"batch":{"root":"c6350945cd9c13c671e2333644db796efc30cedf529d750b952f98a317bdafc6","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-26T19:01:38.250Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":968733},"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"]}