{"format":"receipts-proof/1","hash":"5df125e74be71ba85c538dd8dc140c1f5c405b8627d1428ce00c2f84de0b8b02","provider":"demo-ema-cross","seq":193,"kind":"signal","issued_at":"2026-11-08T21:00:03.813Z","prev":"d872f1c90fbb65030fac30a90568abdbf3d6e7ab21c4d388ad3b6f67a97d1763","body":{"issued_at":"2026-11-08T21:00:03.813Z","kind":"signal","nonce":"2436db463edc0f0853d0daf101541cab","payload":{"entry":{"type":"market"},"expires_at":"2026-11-09T21:00:03.813Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"89.49","targets":["88.22"]},"prev":"d872f1c90fbb65030fac30a90568abdbf3d6e7ab21c4d388ad3b6f67a97d1763","provider":"demo-ema-cross","seq":193,"v":1},"signer":null,"sig":null,"batch":{"root":"5df125e74be71ba85c538dd8dc140c1f5c405b8627d1428ce00c2f84de0b8b02","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-11-08T21:01:03.753Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":975101},"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"]}