{"format":"receipts-proof/1","hash":"f13ecaa539fdfc2b8cccac4c64d1b59805b54bcda996c71121fc607a9c74e976","provider":"demo-bollinger-squeeze","seq":12,"kind":"signal","issued_at":"2026-09-26T09:17:44.666Z","prev":"1d369862a9cacb8eecae9d1fc78c75cbec82b8232d8bde4c7028409cce33c1f3","body":{"issued_at":"2026-09-26T09:17:44.666Z","kind":"signal","nonce":"1e4b959f5d9c1b76059e0780c4628553","payload":{"entry":{"type":"market"},"expires_at":"2026-09-27T09:17:44.666Z","market":{"kind":"perp","symbol":"AVAXUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"short","stop":"10.646","targets":["10.464","10.374","10.283"]},"prev":"1d369862a9cacb8eecae9d1fc78c75cbec82b8232d8bde4c7028409cce33c1f3","provider":"demo-bollinger-squeeze","seq":12,"v":1},"signer":null,"sig":null,"batch":{"root":"5cb7407e52bd574deb171189d610d598adedf7d6525162b5733be51b9ec0dbd7","index":0,"leaf_count":3,"proof":[{"side":"R","hash":"8978c5fac52efddc79336e193652d554b32180e1dd633a4c3b130c4bf3cb2cf7"},{"side":"R","hash":"20e0fc648e7efc2eeb1792c0652b53ce4d74a49077331e0dc6c1dde70be6c931"}],"sealed_at":"2026-09-26T09:20:41.637Z","opentimestamps":"AE9wZW5UaW1lc3RhbXBzAABQcm9vZgC/ieLohOiSlAEIXLdAflK9V03rFxGJ1hDVmK3t99ZSUWK1czvlG57A29f/8Ah+I2jadnnllQjwEBfhgDjvPBZn8/853U1I9DAI8CCM9mXbExeWMv+z5m+lngflbJ8qdfnE3+91O8rCLzMPbAjwINHrRGNa8qfn0HaoeE25mEKsVo6Ad6pOIIS1xmLZ+fn5CPAgJ3eLLeTZ7DfNMnFz/QZERNVwBlA5yKoaFO1NqBIHt8kI8QRqt45r8AiznnBuGi2UagjxICBpIaCSQGKx99BEBaVz3KYrekJqacoXsWA/Xc0KZqHCCPEg+7j3VVjB9QDQYRVqlb1wUXBdvzrFtOyb/ZIabvmepSYI8CCgT8vHJps1IHi+vMG0cejEWlxQs/mpZCriC7AMiBDHEAjxIAeVKEtBVqLprWQWkEB/PL88ilij2HNJeAb+M/8KszSSCPEgDtoS/g0cIBNGXW17t8PWajosP8kXasjju2lgOQ99fQ4I8CB11EoZ3zMrQsyCVnZoYd/sL0P7kDradlY73ZCMzio5gwjwIOvHc0lSS7+qiJcigmIR6XAIlMZn0kkLLRyWHUcfich7CPAg+OCcOMZEYBg5VElharAef3PZRJZ1QC7bny5loxN/zkYI8SAk4wD6V4Qofb/Jkjb4YMOXACRuyqRF55UbdlrXW6LHOwjwIPoOhVzWcXJk663rJ4L4kYBhhR5xDvHlvVnc7SQcZRhLCPEg2UNBzIX0SqNvyscGD7yxmj0sMoCFczIrcRLNxgo1qhUI8CCjyFLIuPzi25t7r9bPQaGNowSnKhJWEkDtOVt+N+52UwjxWQEAAAABFXVnOF8yNVoMONkc5iXZXvfrUm3LuQwYEPzNN4KittkAAAAAAP7///8CW2kBAAAAAAAWABTv6VFw/l6A7V2UuamdBtjmxsc8owAAAAAAAAAAImog8ATcxw4ACAjxII9z0Kut5yKCPh5JldqqN9/tCtldm3F9BzvDq2OeNkV7CAjwIK7gmlDfVzvLYhGK76KgqgsYDyE9WeNfTn+SicWpHiJTCAjxIION8VO7NWjhqjXcCDK3PO5yL7tcnBNQsLWNtL71q+DuCAjxICJ8HjDy+XoDO3ths9YWPmBrko+RBXxSoLb1D8hRSpudCAjwIErfT1dwNxkYA6p1wj7CyDwXZuqYrDqiZF8vRXOp20WVCAjxIJdop9iog6HkV1I7w+cpbee9awJHtl9z0AZ01tgOTTdbCAjxIC2Y4k779bw36jp3R1ZcFMPzc3+G4NkzqMXuHjRDtXqXCAjxIAAcW59ysYjfJrdKE8saZycNYpTjZ96VvJHsAI7h5ADsCAjwIHC3KepO4n4AIChHPC68cB676xWpo6/8n62n8cxTbtIKCAjwIMaKhhdMPo+1tS5CgyGf0Zgk/OLt6YMAc0Vxf+tgPjovCAjxIEdhfEDAuuf/gC/ytDfY93VN8masJQbPFnRODmJ/ZOrQCAjwIDjbZxt5DBHpFn9Vt/VosifwypojQOPI0/cs/9dqcNQlCAgABYiWDXPXGQED3Y87//AIDXMazlcfv/AI8BAa+mP/hmkPKrUqucACKdnaCPAgm+RfaIRN7YLbFc3HJCLtRDBLwMlbg0Xeh+RGl5qkvB0I8CAjt3WC61TVSKvDOPvPUogRmdPtv8WhN9o9F4Ur1cbDawjwIFVzCOYq1Qgx1iecpPU+lAc7tEtQswe9D3XRI4FPXSxACPEEareOa/AIGLjtKjWyO1MI8SByKup0R4FORYyX9SjnDj445VyANaxqP+JTorjBFNs0XwjwIAho/syLZaNJlhDH3iK/GrDGuBSztYiZcarR+7vPBn1hCPAgJ1235lA2qChUDSM/iVvJDMM+KGdHEfYF95feJQVY7rgI8CBv62Xu0j2+XGauRjGKlh5VpvibcWxEFKPTZBDVXROmdgjxIDo98wAO53QC0U1hnvCxWuqSlBOS/KOJ+YaBeyGICaeJCPEgGkHlgsYVZSdZY4hPcg0uB/HyLDetnb1HqbWPxHVqqfUI8CCccLM2yqbUuoGmG6rX9m6FlyF0I70heKaq8+/YFIlrvwjxIPus1nydYz4jPSoyx3sMFBexg9G9gi1sDRqyyPpr91mJCPEgFeiMxh2+MmjbwkQZQAIu+HprVEaDDkwsZtu32GapOREI8CD5asU0t+LqSldU1ovojrfXmFpa6U2mnTC3glRA50PhDQjwIITlstSuC6BnDL/frUL1srQScuEt5pI+znsDGE209XHPCPEgLdiomIoTOm6GYZoTKIKRsHxyVh0t9YSOKo+UgVdw/5kI8SBgWriMcsGGaAN4BF4iEByF1OgS5n7Rrq0Hm528wPDEYAjxWQEAAAAB4ZU1uYazhSh/j5KjrU5XYLgO4bP7Z2cULtVakeGTyLUAAAAAAP7///8C3DIAAAAAAAAWABSKqyD+M1uJN+/pNR9WM2SRTbW5xwAAAAAAAAAAImog8ATbxw4ACAjxIPk/9bngOqNTIrmgxYHQ5Fzzs143i/ae2d9pikIqnRmTCAjxIGRKDRRvJ0pKJ612gVEWeB4ZuKvmuS38VK/hJcaG4xMcCAjwIMF4AN4ba/rIH03u3N8U5b2+Ld06YwLWATsexwfmSv6yCAjwIHwexqJ/GhxH0d/aRcPtVBzfkoE7SB9IWGWi6L49iuUMCAjwIN8Ubn7s8SxQ+QyLp/nCrjYGGdrFSqUD0FTSzStFN+yDCAjwIGUPGuGbta/81pboZr3iu+HO4huStctmHj9KyALYg1qsCAjxIGFFB8crJPb+hyl8YfMJdENl2zw/G8PtH9+MKZJ56peeCAjwIJ+shYEgpHqAvO1TR2r8X1MVr8rX2L24hO1zzU1zgulgCAjwID5zOwrVs8Y4yPyxAqbgQc0kqi3UhkdXQQIcLEb+7m7zCAjxIHbGnteWQUBOeO/UaacPh2NOyKavUlpnIUjsNJyaXpw7CAjwIDpUibDA15T8uIOonxE8LLPYzdlUdKLzCdUgNmNkq32sCAjwILG9nZmeuiSlRAsqUIBmKaoLrJBDKCiHk4K3YDjhBcJdCAgABYiWDXPXGQED3I878BDBKIcHEPoWeA/MZ6ftgpcCCPEgEKAtJzaLxXxzKKV1RvYxSwZJE6jeJdH7GyS8kuXrjU4I8CAjSgU0Tgi673mAFesoA+a5Jk/5fFr7KRlmwpK9RkaF7wjwIDAGCQNltuvfefkxHYqiv1qzuSG1tN3wtK9sKydScbMhCPEEareOavAI9S3iViyy3VIAg9/jDS75DI4pKGh0dHBzOi8vZmlubmV5LmNhbGVuZGFyLmV0ZXJuaXR5d2FsbC5jb20=","chain_anchor":null,"bitcoin_block":968668},"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"]}