{"format":"receipts-proof/1","hash":"718430ffbc67daed2df45df8fa9cdfc84c26f3bf7446c27dfd99e1ddddb9fdca","provider":"demo-ema-cross","seq":9,"kind":"signal","issued_at":"2026-09-24T02:31:11.817Z","prev":"f4f1c369f1929cdd1b6a329ffaedda21a401114dcafde9fe59f8a234e45ab450","body":{"issued_at":"2026-09-24T02:31:11.817Z","kind":"signal","nonce":"72a42b00e8529b3b26477d236c770eb6","payload":{"entry":{"type":"market"},"expires_at":"2026-09-25T02:31:11.817Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo strategy: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"114.17","targets":["116.31"]},"prev":"f4f1c369f1929cdd1b6a329ffaedda21a401114dcafde9fe59f8a234e45ab450","provider":"demo-ema-cross","seq":9,"v":1},"signer":null,"sig":null,"batch":{"root":"718430ffbc67daed2df45df8fa9cdfc84c26f3bf7446c27dfd99e1ddddb9fdca","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-24T02:32:02.074Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":968343},"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"]}