{"format":"receipts-proof/1","hash":"359bd9ddf6344b118dde1b79c4fe46e7188d35ab3006c5c9aff4e18e966ad593","provider":"demo-ema-cross","seq":34,"kind":"signal","issued_at":"2026-09-27T13:45:39.298Z","prev":"773788c75c587498fddc1eb9e1a93869a2b1af77feaf7089e11b09871fea3147","body":{"issued_at":"2026-09-27T13:45:39.298Z","kind":"signal","nonce":"0dd624fd86d1e80569b5bdb37cac0b8d","payload":{"entry":{"type":"market"},"expires_at":"2026-09-28T13:45:39.298Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"123.58","targets":["121.15"]},"prev":"773788c75c587498fddc1eb9e1a93869a2b1af77feaf7089e11b09871fea3147","provider":"demo-ema-cross","seq":34,"v":1},"signer":null,"sig":null,"batch":{"root":"359bd9ddf6344b118dde1b79c4fe46e7188d35ab3006c5c9aff4e18e966ad593","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-27T13:46:39.376Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":968848},"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"]}