{"format":"receipts-proof/1","hash":"f9793e0ea3cb445a845312d961288a486629c3b96af350e196699015ab5cb9e8","provider":"demo-ema-cross","seq":69,"kind":"signal","issued_at":"2026-10-02T14:45:04.231Z","prev":"ceade0662da484417aba670a2c5ceeedc98125ae4f34edd2141e2f9af9e35794","body":{"issued_at":"2026-10-02T14:45:04.231Z","kind":"signal","nonce":"e9321f457135f7ad5926aed1094f54d0","payload":{"entry":{"type":"market"},"expires_at":"2026-10-03T14:45:04.231Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"122.47","targets":["119.25"]},"prev":"ceade0662da484417aba670a2c5ceeedc98125ae4f34edd2141e2f9af9e35794","provider":"demo-ema-cross","seq":69,"v":1},"signer":null,"sig":null,"batch":{"root":"fcf83d91a63de0d3c53cf0f93ffc8b3cd55b321879899edb9e9b06461582a933","index":1,"leaf_count":2,"proof":[{"side":"L","hash":"ceade0662da484417aba670a2c5ceeedc98125ae4f34edd2141e2f9af9e35794"}],"sealed_at":"2026-10-02T14:46:04.229Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969609},"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"]}