{"format":"receipts-proof/1","hash":"223fa353df675d8a07d3e0743a0d1e6e435139b40ee8fe7253f5e50aafb6670b","provider":"demo-ema-cross","seq":122,"kind":"signal","issued_at":"2026-10-11T21:16:48.538Z","prev":"e6bc86e06e21151aa8a59ed00e19a721dd15395b01e980544ddfc7890c03b7c2","body":{"issued_at":"2026-10-11T21:16:48.538Z","kind":"signal","nonce":"01275593d9fba799c5d7a2118e8efb85","payload":{"entry":{"type":"market"},"expires_at":"2026-10-12T21:16:48.538Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"111.21","targets":["109.73"]},"prev":"e6bc86e06e21151aa8a59ed00e19a721dd15395b01e980544ddfc7890c03b7c2","provider":"demo-ema-cross","seq":122,"v":1},"signer":null,"sig":null,"batch":{"root":"223fa353df675d8a07d3e0743a0d1e6e435139b40ee8fe7253f5e50aafb6670b","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-11T21:33:28.243Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970987},"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"]}