{"format":"receipts-proof/1","hash":"b2b36572da2bf1ceeb37c044ee9e766cf13d0963a92abe8d0475e997dd80d032","provider":"demo-bollinger-squeeze","seq":99,"kind":"signal","issued_at":"2026-10-12T21:45:11.071Z","prev":"1c0f83efe11abbf64df97f37210cfbb1011950639955a1f9454157cabf1f4854","body":{"issued_at":"2026-10-12T21:45:11.071Z","kind":"signal","nonce":"918a9e4f2a36c59cdc6c7fe5c16c0707","payload":{"entry":{"type":"market"},"expires_at":"2026-10-13T21:45:11.071Z","market":{"kind":"perp","symbol":"ADAUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"short","stop":"0.2418","targets":["0.238","0.2361","0.2342"]},"prev":"1c0f83efe11abbf64df97f37210cfbb1011950639955a1f9454157cabf1f4854","provider":"demo-bollinger-squeeze","seq":99,"v":1},"signer":null,"sig":null,"batch":{"root":"b2b36572da2bf1ceeb37c044ee9e766cf13d0963a92abe8d0475e997dd80d032","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-12T21:45:14.079Z","opentimestamps":"AE9wZW5UaW1lc3RhbXBzAABQcm9vZgC/ieLohOiSlAEIsrNlctor8c7rN8BE7p52bPE9CWOpKr6NBHXpl92A0DL/8AiTxQbN46FphgjwEABnYNH0kCNrXL2qxYfkHvII8SBvyWR8aDQAvhOUySn+kxEvP2mfwVCiEZgq8HWAKYEYDAjxIJPpPZWqcYsCntcSUHVZWhi7kknHnjDlbm2MoMESDT1sCPEEas1U6/AIl5nuZHDeMFwI8SAHyny47dR5Gk2yaHyE0IXz/S7NLXEx7rqilZZwzZMMCQjwIC7+7yrsfqnA5508dyltnx4fH+SVxMtyiU8cIRa+mXPgCPAgUeylV2Df+Bg0PJpy1q33D1jajM4vSO2tZminagtRud8I8CCb+9KtTHYUmaAD1O3piV4LKz8QaLs2UmBLCYCnDpUX5gjwIAb23Pv8ZPQlKm2o9p9vp9L95uq7/ANH8/MGmAQsyB8QCPAgdYyTe8CwyWBFIxqYeVz/5fEAdiw8zQPos7x0uPUvwoMI8CCI2TZXoeiodoGTQc3s96L4lKgRqYWW0rsJXO+tjH6qHQjxIBs+vZtCJPXXiy0HvZ+9zXZpE3L5lGaJcP+1AF8GqpkBCPEgMQDj7FprRpR/1Ss6dbtudm9mmV/4tt1zWT175oG4XTAI8SBkakzXY7cg4cq+QUK5X/X+giVGOIbOjGElKIVDS52NAwjwIKSJR8/Xuhz2gL2CldQ10ZT1U8mvNlH0N3LQdo1RL0YLCPFZAQAAAAE7Rwtm3TSmTr92w8uxn+RtX6umPp4Xumx1KpTUbVab0QAAAAAA/v///wIfNgAAAAAAABYAFKxslmqmrV2PNGvUtc6AKheaTg+vAAAAAAAAAAAiaiDwBIbRDgAICPEg4cDLAbS432m53PPDTeF6xhXkuR76hyq/7gmNHpSZo4oICPEguQ0Ia4ywZ0KHsM9XSuybFEMRtYnGuqsQRmbHfBFND5QICPEgrAHY8rzYDZcy2fAoY1pXVQfq3eNwMeIqEKlpNQdOEJ8ICPAgZnnVRptcUx9U5rs3VV1xiAUHmuDqeHvAY4OCfwzp8tcICPAgCXQU0Pxv+69DaxF3DDvSGpv3GurBYWMReWWn+55NDRUICPAgv5X6JWfE43n4HqI33Yofp9WXSyhgFloJUcrZgp59o/gICPEg2mVg0ZxC5aW0i5S7fVAHfIJqlFltqqLg62EJeSKqYLoICPEglGddfiD3WnGUXUYv8ZATTDy/0QOai6y+FhLNzz6ZvfgICPAgwCm1QE5kQz65nb5NfAZIwMkjaG2OAbzE10QnerAcPmcICPAgD+3St3BVh928S6MEfaLDWv8N9uFZ+sWBal2gfqXqkqgICPAgdhV+hnVcEyJrXqhU7bjdq95FCT0gR1lJAqzWLYgEysMICPAg7ad7iDx5vxXxftB98HWF+9ej17NW+V9db0b62EbzlWkICPEggEBn6vrmMmoWODTzFQSNtlsmiE2E18NnXzRQKIm2bksICAAFiJYNc9cZAQOIozv/8AgR0W4bV3KM5QjwENgUGlr4YAT9M5cYC4mMFSUI8CBVe2q67fbOGhRQancpEb5iMRNoydiWh/uiDmkTPf35tQjwIGOYej1PjyJclqpRU0nWGIHKpv3fDWb8fHPdRZQVvX1RCPAgQJfs+rTeRRAtaimnG1zaqp0cY+bzVOTj2DwJVjbfNIcI8QRqzVTs8Agtx+O2+b1HyQjwICfGPOHznASP9qhynHYsLwqqykndUrNAeC+rC4mW7bucCPEg7UnNt0cHMFCAQW1DXYHuq5NQbK2o1nmRbRFpf66KbYAI8CBuSmvkabvJTmKPQF22Svx2940dOWduofAsT0+V1cdkcQjwIP8r7ylKW0eZZHH/iKiXLfg/LHLo3QkRfbk2XIbqQPrDCPAgDXSZ9d6BxAxIn/cp3QV4Du9BK06a/N/2AZp0qprPdKwI8SBU6GMjcqj8K6tP2sipHcfGc8My+CdxBjZ2xi99tk0nBwjxIHL8+Jk9764q8J6+EkkM6IEpck6qiYAbmShsMUnJfIiCCPEgLQeNxFk9IzoXtWbmAstb8yLIt03tvWpChDMXSbrCKhUI8SBvtpKa8ttqKNaBl5Mwxm1VxILTYdVrnT77wzJl/ELgOQjxIAjxruRa6NSj54rYmbq+X8HetouhIfqdE38VOhuIqrszCPAg5sRAr6WsN4vsMx4CkaMQ0qmkwy8x4d+EoAeLiZT/IoUI8SAtn0Jik7BBFqyox7x/PNQGJieHtc5ShSshRHWmhvr8fwjwIMpYyb54E1Deh3d+UdN0QU3jBioNqCfQTo6NLMv5Tr9cCPFZAQAAAAGwjyUscHfSKGS1ZbanH1MKjwHec2vovSBzAQHnFgADqQAAAAAA/v///wJamgAAAAAAABYAFCl6K7ic5FXP9h64qtyW99ShZvCYAAAAAAAAAAAiaiDwBIrRDgAICPEgB7r6eyLo22GRO4HnQKnZ7Xe9Yqvlsx2hudxNc5JYWboICPAgBj8NUwMuj/sc5IVyXzZyxGg+G4DycMiQpCstbkFy7+kICPEgebiC/eLlMudxZQKiuTzmnKF1InNtXxvxYr2jdT/y5m8ICPAgQt7El1Q2wD0G0btXc///rDQ3HvF3KOp1qyXfyU5MNx4ICPAgWQRfiXUNFIddZzlXieS6cdlP3uREXABBNdARiOKe/vMICPAgrSFmBEwluq9fWAo0P4uBQpkGoZxODhKsQAAhOLACxFQICPAg/PNLYYLvdTOyelaNBEYkmX5dM19Bpm7ZlX/mjvvb0CoICPAgLk9sQFd5797PTLs+K9ChW7IjfPFzNW1i0jN95PnYyEAICPAg8eaTAcEpYQkDIq86ASE+n2DX61cxfNBjB1xRRHEusmcICPEg3Jn18e0gnCSUy9HLA09tsNOdowIxa/E9TqNxDSu6GGEICPAgd+P8NhJ6iGI0k0kcmOJLgkwd+aQNHs4ELGdqJpkSMzkICPEgyYbmO7ZHOxFenl4czC7igaEjm5Exunzh0saC6LKjXXcICPAgW+PXhK1+7ZKEeGTwaQa6/+vsFSh5JOMXW2swQRyJ830ICAAFiJYNc9cZAQOLozvwEK3K/dg2zVcsMhXDKL6GNU4I8SC59mYmt47u39i/0FxcAJmBFs8E7yMcglBjCY9CPAhRLAjxIF/GJjK3sz3RxuYqcbpWBLc9fnxjM9C4RCFrgyR6fvq9CPEEas1U6/AIEYRZ7oBMSq0Ag9/jDS75DI4pKGh0dHBzOi8vZmlubmV5LmNhbGVuZGFyLmV0ZXJuaXR5d2FsbC5jb20=","chain_anchor":null,"bitcoin_block":971144},"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"]}