{"format":"receipts-proof/1","hash":"cc53d18d35e32873cc2988b96a84a1d5071d60cf4d74d7006b99be2a38da4a8c","provider":"demo-bollinger-squeeze","seq":3,"kind":"signal","issued_at":"2026-09-25T08:30:00.495Z","prev":"a8cd6709f509ada91d68b3de3318cd5733dd40939fa3792ee263b36b001a2641","body":{"issued_at":"2026-09-25T08:30:00.495Z","kind":"signal","nonce":"35b85ccd70dc4e1322e7a454bef872dc","payload":{"entry":{"type":"market"},"expires_at":"2026-09-26T08:30:00.495Z","market":{"kind":"perp","symbol":"AVAXUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"long","stop":"10.238","targets":["10.45","10.557","10.663"]},"prev":"a8cd6709f509ada91d68b3de3318cd5733dd40939fa3792ee263b36b001a2641","provider":"demo-bollinger-squeeze","seq":3,"v":1},"signer":null,"sig":null,"batch":{"root":"e62b9cf6a477363f1cbde84f65cc47612ca1814d6ff5e3d75059fc2f2945e41a","index":0,"leaf_count":2,"proof":[{"side":"R","hash":"4271b2c0a9a8f4c5528e2b0d18bdd497b04b95e9dc01c2c97782cbdce41b0c60"}],"sealed_at":"2026-09-25T08:30:50.400Z","opentimestamps":"AE9wZW5UaW1lc3RhbXBzAABQcm9vZgC/ieLohOiSlAEI5iuc9qR3Nj8cvehPZcxHYSyhgU1v9ePXUFn8LylF5Br/8AgqcNDvwSdBMQjwEMu4VkWAqQKsV88Mc/0yax0I8CCIfM3Sqq1Q7Xb3q7lKItuFluvBPUnXIqXn/s5OUpHqqwjwICx7RQmA2pz+8fu7ZdeQT6mFXYTmRHm+gxp36NWyT54qCPEEarYxPPAILMPeKB3YHKsI8SBnyxjE4VehLNsQbhj3RUc9Rg0o2lpN1enApG/jBrlFTwjxIFPmUV3wlMUgDU5nzWFgTz7MMdpsnSOCJ+AhF/WX0O4/CPAgwi1hnE25vdAu+2sxqJgaWVenbcgV076uh3MAvLBmXh0I8SC59ybcbhw1dSTryOVr0HZr0S529ChFFnJDAkoKJOKPiAjxIPE/zsE8oK4qZvgD93yLr84pTkIEwLnSgTJdATtooWTCCPEgmWnkfeLOgDwZb708IfCOmCeKzVM1Ds4J8QTzXSrRRUoI8CDDjpAmh/JQ5ZF+YxaTzlFR2GUJU2RtJ5MqI2Z+U4HUEAjwIFehz3I9bjDcRhGnYpMoe0QMz3qfonO3RFvkYi3TAH3TCPEgFqyHbwlPZExWpF72MvaovMXcdfyBqn6wQEQsaJ5HbiEI8CDg2AtlioJgMqSThc7NDIzbcDG7DWopsACPHRu8Pq9nQAjwIEwEcwrREupXMojlzWoZDM7GTgIfz1s5ZH/2kQrBGBOKCPFZAQAAAAFQwYUVaa/oXlWwCHiIRnAxm2rvMnxHjNQqUNEUbPpVGgAAAAAA/v///wIHgwEAAAAAABYAFOd/+mWCZVo8P5MUKnwF3zXiwoP7AAAAAAAAAAAiaiDwBFDHDgAICPEg5OT/CuBQmTy5qHq+LFN7jbieUis09B1XDjqfXWqyoKIICPAglRnb0E8UIMCkep5564/RPK03R0jdw+ZtoGEF32DOLpIICPAgXMVMYH9WRyeQD5uxF/jcFAEmZV2FKI79nBLXMWdRcC0ICPEg1PEqk+wHyMpYphis5+syLh7s+lJJQ51crXHfk2DrmB4ICPAgUXOK3P+beLyBJXm0BY9rKhxRI4a3nWJ5hJ3ON/0hPA4ICPAggqQQJ5DrHYY+5/UjR28BS7tvtyu3R6sfXNLFN6S26kMICPAgen9RuCZxeAEpyUUEy4g7RYOsjSliDr2BLoLd6bGQM70ICPEg3Xci3EkchYdFp7eyqc+FFw7Wu8XecO6brb+eyjrZRxsICPEgnfaVbOy9WsjR/D6AJivMHYVCoe2/ZYSeVQau3UAg/5oICPEgX3q6x/CoH5+BhUifwkXth71pJ86bjAMGfWPa9Y3wfPcICPEgBIYqC6c4gfxUaTUsGLzrsr4ITSPMnPRm9P6DadN2z/cICPAg6ArGT7Njz3YcK/yMtAmUKDQfMQ5d/0gGb99x4k4pbngICPAgIn1klji60rHeEkxn/Vw1HpYRCgPO+hR5usL1EGSlmsAICAAFiJYNc9cZAQPRjjv/8AhOKN68UzqGRgjwEAoamr3rA077gkTAMyCH5wQI8CBAd0AkE1vlK56a9Ql7s2kYmoaveJCcr0SkdMr4lvJSFAjwIBRPJpYIc69/0Fku8CKC0t7L3PZ3BeBwTLDb4nAyecQYCPEEarYxO/AIDAIe+DYlAxsI8SD01IZRr1jAXw7Sj8jb0YQpXCIVCT23aFy2CoXJ/nDZLQjxICaw79Kft4ko4k/HVGVz5f86UniYnJgNnVV4guqq8npHCPAgDAoOHfgl6NeiZsaC0v17XAbu1O9qygZsTk0Ht7Bn3J0I8SAx47byKuf5W/L2H0GwztiT5MhJJodSBrZE6C956kLrBgjxIAD2ChftdD1Rnd/heGWjsl1/IjK0GmhUccJdQF62iGf9CPEg8/aUPyP9dho4Gy8Y8fsTEox6p+LTVj52XJPhVdDqOrUI8SBJbWMMqruPnqo8Tx33GfbZwuCDpL8N5TbMf0F/RRej1QjwIPJiWbO3bWcNyfd+w9DACDsuNKilHxJoSqBqPGbJ1jhICPAgZn5nQNKDMIaiWZnrcynJ6wDgDpUgwVI3yvnCurdkMr0I8SCvcJR2Sl16R3r3eWUjldHoEFQ4KP2aa9FQTyswUMQC4AjxILKUHQp6M/tmSYjCQaDK5hZJ/DKwcMa5fhgBivTW/2iQCPAg0slBBjbklfb3WyW8FdlrY3ayCrRNsSiopJs9pVUA28oI8CCr0p3GYaOfy918B2xx9Hi4jT2i6TIv05sJThSzWyUsKAjxWQEAAAAByJOB3GfYMva/mDLmpxu/QVXyPybFaPkAxzAA7bG30WsAAAAAAP7///8COjYAAAAAAAAWABT4c9J/Pnng1WmcKLjDe8d0yt3G5QAAAAAAAAAAImog8ARUxw4ACAjwIJVxgwYhrCY33zt0YE2XyMrMQ8i1flTw+yvO5Lz/y0ddCAjxIFT0AjeagZeHo+pDSnsOVikKoO63HlFthZZEFc59zNlmCAjwIChvtf5y5liRmOfDqWcOW3JXyntqbGV/PVcQ7cEnmGCfCAjwIF9Jo0wB+1F2GIe+YrQcE3tq2qTQ/pldTKaSsGYcB9K4CAjxILB/NOJqOdTBgl2mAGAUHaPAgnkgCH9bp2kuyru9HlkQCAjwIJVvlRO9C0CaQWg+/RG4ySOrRIged0s254zdTx53yDZHCAjwICSPkGuSGl1c7sIjbWo18d+E0f8/TH/op06pKjLuJzH8CAjwIMhX/pCp/+08r2XUdzTjMVLFC+3o1pUkU+QR4VOsRT4nCAjxIGyrhoyDhQqZnPnVJGR3/TSB5q+LT2MW1VT/aupbELFoCAjwIL+SFZfge564cbGniBWbeSi5UGb4QEEhSVpPVKfWBrt8CAjwIGoGUkCnC1XOURy+x7NcWtTQ/7Nppo1xbqR+WxrlR51XCAjxICZ7t/4JoL4BZraAeeI79q5X+f3IrMIqya0kGHEuX6MkCAgABYiWDXPXGQED1Y478BDo7D4kw4B8f6iU3CtQ8icxCPAggpb8GWPXSqHfiQf4ERVrJLffHU7OavOUadX1ZnrtlB0I8CALct3GRPtQy2NNTm54koPo43xoYOvzDZ2g/svg1D5FIAjwIBLE0zcbpVwPaLMM3R7Xi1DltkEXf7PYM1vAY4xfFnr5CPEEarYxO/AIkSfo7fymmEwAg9/jDS75DI4pKGh0dHBzOi8vZmlubmV5LmNhbGVuZGFyLmV0ZXJuaXR5d2FsbC5jb20=","chain_anchor":null,"bitcoin_block":968529},"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"]}