{"format":"receipts-proof/1","hash":"80ee78cfaea84456a39d0c6acdcd9a46013867e8920e03e09c59b973fe2ca32e","provider":"demo-bollinger-squeeze","seq":75,"kind":"signal","issued_at":"2026-10-06T21:31:07.363Z","prev":"9261a8d2100872c7a106621d27e3f51b11e272a676b61c623533907abb5a8cdf","body":{"issued_at":"2026-10-06T21:31:07.363Z","kind":"signal","nonce":"2b195e63fd99a4a2ffb4a2beb6dc27ea","payload":{"entry":{"type":"market"},"expires_at":"2026-10-07T21:31:07.363Z","market":{"kind":"perp","symbol":"ADAUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"short","stop":"0.271","targets":["0.2674","0.2656","0.2638"]},"prev":"9261a8d2100872c7a106621d27e3f51b11e272a676b61c623533907abb5a8cdf","provider":"demo-bollinger-squeeze","seq":75,"v":1},"signer":null,"sig":null,"batch":{"root":"80ee78cfaea84456a39d0c6acdcd9a46013867e8920e03e09c59b973fe2ca32e","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-06T21:34:31.872Z","opentimestamps":"AE9wZW5UaW1lc3RhbXBzAABQcm9vZgC/ieLohOiSlAEIgO54z66oRFajnQxqzc2aRgE4Z+iSDgPgnFm5c/4soy7/8AhdjmdGsSk4SQjwEF/BzeYB4Rm4+F3yxI0uNJUI8CA8eBu4Ef1RUZjsBCAQR/W9wAU6EGMWueOREVsZZ0TINgjwIGBPS0dbVQ3D1PQ4e7WJIvtzqVGgFZspmPiWAn+y4/qDCPEEasVpafAIrZ+xDp0VDHoI8SC/wpQQhN6R4FlxUbRu6RtW6f8f/JtTzzXImYfjebvyowjwIOVCXTw8Q0LhGzJxM1Q4fUBt+Opyv4h1TYDhruWIvOa8CPEgT29mcO1K9M9o9tcuch/qgcHa14XsxexER3bnUtcgOJcI8SCNbuE94ug/AwFPs6BuOFeKPw80PMkiftXPZykoaxS/1wjwIHRgaufctMIoHqXe2FfQrH6xnwG17DwOP811ZnHBunxmCPEg/qPtmjBwFEknN8vdfahzMSSeEvf271XBAxNVTb6W2tYI8SDtOnumpVoeBzm6BNzRpn3MPLEKzOqLRA9bSw05Oilt1AjxIHAtqNcafl1ra6/bCnjzaw01Jc+rwcdCK2Xamvf14qZrCPEgm7gr7QAwpXVWGxMnunYqiqCAu6UWNyapdrAC4T+GDAMI8SBV9BHYuC8m8386gMmb8e9R9Esao6Gds3+2e2Vrwy/wTQjwINkneV9VPKx0hEpCM9pKsZcWeMqDw1b7W0GjHtNbanQNCPFZAQAAAAFlTyQN0/YGbhjGqS8WPSkgh418vdA8ebJ3h3kDu5KhaQAAAAAA/v///wJd1gAAAAAAABYAFHV+rIKLL/Q3XY2gc6YOVtV8jVIkAAAAAAAAAAAiaiDwBP3NDgAICPEgnFY3QJXrHuJU2aLgn10AEg03qulzEMKujn6aTYLRbPMICPAgxrrjCy/aebBrFpjUtqaNf2EuTKpTaiz2y5QZLgzEfIgICPEgHWajkH4eB0i1s2ngeOcJUW8LqsChZKe/pB3KzMMeZ08ICPAgeaUbjnS9PqDoNNluaQHZcR/VGnlx0yv9BtppCnehWQkICPAgpsv2mlWnEv/KEwjs9FRIoptZB1PLOD+QDvatQYw5weIICPEgzu/A+5h4FIjZHnVGgQvSCd10XCBTyfYrSSslszGndZoICPAgcOaflo9vdvGz0/yCRFWp0vfxHucxZmcN8M8jF1kLvs4ICPEgmaGynMMrt2dU8Nt1HegJA+pRh00gBKvDQ+HF5Gp4nUMICPAgzSh6enFATLkk+eXzTd6O9gD7hl49K9JhXk2j++xu7/wICPEgP94Qafe79POUiXmEb1XSXFcbjvewYo7dAxjw93eg6hMICPAgvR1Pfj7574AnDsOB9CLF4PkLF/uV5JSziAuEVZqIVMgICPEgxz7zFgCVrp4J1fEnrgcSb3DQa9k7YVSKkt5BKzmxZQcICPAgCNG5bRdYnGuSS+WJkenDwUBm/aaKYgglpDMzSaYorlYICAAFiJYNc9cZAQP+mzv/8Aj/F5YTQzSIgAjwEG166L2n2B8bdv37Rkmx85gI8CAcV2m0Gh+rX42fx+F3Bzh4rHsCWEP993Z7pfmXxfIoYwjxINbS/lBzdcOg84maG+f63F+5ZEWpRmE211fLE7n/Q+dICPEEasVpaPAIOmTcdA1gMJkI8SBYPoMEkqKmEtdlazH49M+zQRp8uLgIP+JVSIAziYo2UgjwIIQG3SU+YmCm5w4YmbVYXaY//W0FJwAJ2obY+egdULRgCPAgJI+ZgXp88GcnNUxkaa06hp9E2TvPqX/58LMPPu4KvcMI8SD0cmLdZid/zNjuU4hlZZsN96Sk4B3P4PH5EJXBqVMNygjxICQt00RG8iBd3Q9bdtoSIijaPJR68vPu3eq+culy/J71CPAga8QfRzK6o+7FPVbZTAuw/eLLxHzBRw7jlhZvTJTpKLsI8SA5V+RrLeUJk+jWBnTUGV0VT2jF7mKmyGUOUJil3MgCVgjxICIy3iY8rXAhcLTRaWMByix/rngKyJbFOIo9vg0/EN3oCPEg5d5L/PqLIqHcq6+9IzDcs8NLhmcsO4/TH9cgeLD4B5sI8SDGEDYm5XTy/Xth+TwULuEu6q8KK1knXlvwXOGRZQ1WJAjxIF/iZC6nl00Bzavnp7yY/LVode19Q6nrUjtovH0rb4EFCPAgL3xE/VK2/DoqD2vgb6rbfhNIgfPH6TbB+Gp66w4wQEMI8VkBAAAAAYQgGM7SNr+kV0VaLFDHlQOTHLXdmiG5cjiJ/26n3kAYAAAAAAD+////AgjaAAAAAAAAFgAUdeAxMilmSXmxdsOs3LNJtkmcSJcAAAAAAAAAACJqIPAE/M0OAAgI8SDz2WWTuqAtYDnnMFu5HIjUtG3ud/4Q97sd8e5r/klO7AgI8SBanlpAWdpaw+BXdqFHDvjiOHjksYiDSfReYeb69ZuCVAgI8CAcDH7iGVaV1Tki9KSCH2HSBIzcojaM/7MD/HfMFHVtgAgI8SATjGcwR1zbiwqN3rYexbeLmuuVOUdvOFt4ON6WQQrqMwgI8CA29cf/AyV9ulYOt+LFtzWeUjz/y3dNxwc9YSnJ0hwYIggI8CBbhOFK6W9ITkELfVdVy6Lb3QVkHqmxuScASmaEvqBdgAgI8SC6AIO8ja17tUDpO6m7zfkHc7c/lGVk9q98+xwzJzXcqwgI8SBuXoxIWHgPqpRDUTKWmQWInbYJYb9zcsBz0UkfLmtM5QgI8CCjhwI5T2l9TniW7adVAx4sfbuXEqccpYo/hx3rnp88uggI8SDV7nM9dxj3qmgz9U6cgZOJ6aoGVM1QUyRf/CD3jFS1uQgI8SDbJVPQBM4JddYMxccLC0Hf3PdNw2dfSfTR81WVP07B3QgI8SD/HwfSptcEeVFMp96ulXPKEaEKK+W1ei81GZiaK2tcHwgI8CAcx/D3YwImt7IuV8Fd0SOORKllMI8xDcmrsA3TG7AJOggIAAWIlg1z1xkBA/2bO/AQgwAfYJgXlVAjJ+msee29bAjxIEMUL/P5tK7uGVHbKt/RCBKlDEuLFUGMMmvwtVorY1L2CPAgNilYg/3QEQXCWAteotWymulBInHjCN5PbnT7QT+BkjYI8SCww6Ap9Zv0o8yG8Tz56dqo/H+y4/svkPdEdwMpOalN9wjxBGrFaWjwCCW6uoFgEpUlAIPf4w0u+QyOKShodHRwczovL2Zpbm5leS5jYWxlbmRhci5ldGVybml0eXdhbGwuY29t","chain_anchor":null,"bitcoin_block":970237},"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"]}