{"format":"receipts-proof/1","hash":"ff613c8c816f7ed8fd764c9655886886c4c4a91be9914b38d33c982f1287f8a6","provider":"demo-ema-cross","seq":180,"kind":"signal","issued_at":"2026-11-08T01:56:09.965Z","prev":"24b247528132d0cebf6acb4554292b64704f1bb860b64d697e60a29fd1aa6546","body":{"issued_at":"2026-11-08T01:56:09.965Z","kind":"signal","nonce":"caba65cfb7596fa27495e4b64980e21d","payload":{"entry":{"type":"market"},"expires_at":"2026-11-09T01:56:09.965Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"89.45","targets":["88.61"]},"prev":"24b247528132d0cebf6acb4554292b64704f1bb860b64d697e60a29fd1aa6546","provider":"demo-ema-cross","seq":180,"v":1},"signer":null,"sig":null,"batch":{"root":"ff613c8c816f7ed8fd764c9655886886c4c4a91be9914b38d33c982f1287f8a6","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-11-08T02:11:59.140Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":975020},"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"]}