{"format":"receipts-proof/1","hash":"75d06cb539f2340c8776a198c841a7cf687ab585080d61326624cfcaf2e6af79","provider":"demo-ema-cross","seq":123,"kind":"signal","issued_at":"2026-10-11T21:33:28.230Z","prev":"223fa353df675d8a07d3e0743a0d1e6e435139b40ee8fe7253f5e50aafb6670b","body":{"issued_at":"2026-10-11T21:33:28.230Z","kind":"signal","nonce":"87c744df2db82aa63f17f988ea045c2f","payload":{"entry":{"type":"market"},"expires_at":"2026-10-12T21:33:28.230Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"83583.8","targets":["83048.4"]},"prev":"223fa353df675d8a07d3e0743a0d1e6e435139b40ee8fe7253f5e50aafb6670b","provider":"demo-ema-cross","seq":123,"v":1},"signer":null,"sig":null,"batch":{"root":"75d06cb539f2340c8776a198c841a7cf687ab585080d61326624cfcaf2e6af79","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-11T21:48:49.391Z","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"]}