{"format":"receipts-proof/1","hash":"ce1d56b3fb4f479f911b894bb7a7847e75d2551961fd17ac58ddd03fe8d9e38d","provider":"demo-bollinger-squeeze","seq":1,"kind":"signal","issued_at":"2026-09-25T08:00:00.395Z","prev":"0000000000000000000000000000000000000000000000000000000000000000","body":{"issued_at":"2026-09-25T08:00:00.395Z","kind":"signal","nonce":"ae9e638da996721b9d81520f1f6f1061","payload":{"entry":{"type":"market"},"expires_at":"2026-09-26T08:00:00.395Z","market":{"kind":"perp","symbol":"LINKUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"long","stop":"13.338","targets":["13.65","13.807","13.963"]},"prev":"0000000000000000000000000000000000000000000000000000000000000000","provider":"demo-bollinger-squeeze","seq":1,"v":1},"signer":null,"sig":null,"batch":{"root":"98e964a7705722e6adad8135764bf67236364e7dd18a66b54caeff47de41ab6a","index":0,"leaf_count":2,"proof":[{"side":"R","hash":"a8cd6709f509ada91d68b3de3318cd5733dd40939fa3792ee263b36b001a2641"}],"sealed_at":"2026-09-25T08:00:50.294Z","opentimestamps":"AE9wZW5UaW1lc3RhbXBzAABQcm9vZgC/ieLohOiSlAEImOlkp3BXIuatrYE1dkv2cjY2Tn3Rima1TK7/R95Bq2r/8AiJnL+2PzkA5AjwECaj6+eSc5nYpQVG31Wak4MI8CBPiWiaoRtN5Yg9c+rcyOmm1wsNKR78LxzO3ocD0Nk/rQjxIADw6MZ5RfMcdFJkEXsgRvYRO6iZLCbDQzu8Ezy1yt8iCPAg8PAfAmiZk5FdSkZTkQ3vMGk7Z9ek0PTyg/U6GM21UggI8QRqtioz8AjH0kktu13AmwjxICbhOwGOAQTJALWjn67ue5aI97z/qinouw9hhqWchRi6CPEgNrnj+4EvjSgrDf+T7h81U3kMT3QUFPjtVC93bz8iI0oI8CAV1MBq7G6eA3k5Y5Jp3Kg6Xs+38W91fhJsXRKHsWAgzAjxIGMxgOOjvqfbNF89F+RDTIeNbye9vkug7aRj1e9GBkU8CPAgTGSXFTK1tBO+PyPMcvqSx7wRcX5SzJ7TrE0BnFOC3zcI8SDyCUxBTMXiXfs+MrGJkxxeYIO/d4H+DpzHHnMmbTGO6wjwIKjLGF5fomKBrWclCtNw61U3/roF/7cK8S6Kxc6cxlodCPAgAlgea4j6qcPczOOclAV6ZmmFeWLSPjgbwg6eOOAWBfoI8SBJXjeuJXa1HvIlO3U/x8ovjVdxzfUhdhw//fvhrOjosQjxIEfbQ9QS64eIJLrLVYdjqiz0+Hb3Xr0Ivz+2buwXItMACPFZAQAAAAGn47a/i90ZaWLjY4Coz/dDxcwbwCkSN7vkqNuwjrxIUAAAAAAA/v///wKmgwEAAAAAABYAFKisHj3nnbd6J4O9O3aHw9srPZn/AAAAAAAAAAAiaiDwBEzHDgAICPEgGz6dOPtzBl5AadCKgOO6hyEdsPL3EmMT1Hir4H0EZgMICPAgQNwEQRJ28Hr0knQeDM7wqlgVr1jvOsHrpQQrHYGcLCAICPAgRRQ/UMiYf1YYgBHjbg2wfF4m+RTGKSNCdR6n6UppmVwICPAgRSUqwXMtSDwqPGgj9vgW0flI8H7m2e4OtRa8oXQnMS4ICPEgO/9IFqfoA6eWJzLssC2WJjpwOSwZ+kUBNwiPUNhx6EkICPEgb3BVZ1TfaojEUhnNiY6q7LCszPWBWDFJvGlqu0feAIEICPAgFmapvJ7QDxKZT5kL0opz/7npE3T+ukfRceOoIOfwVkAICPEg9wGzy3Pb7wCbfy9EkWiT2FwDsFjBXMchm4Ic5OTpn1AICPEg8ujATfFq1q6GuzuTnrWwUPMTwBuOyT3PQ53LfYbMtu8ICPEgP5bkZiH46N4tXbSBwkT+sOlH7icwKF0flkrW/SezYIkICPAg54kRtuQsRk6bCvJEgDq+7Q7mZ5mtDhAyJ9tIXTi4vUUICPAgrwmb7W7sYfnYhY609DsMtw0jr7Vfgh40oWTm4uye7KwICPAgRqP1SxOa3JEgPy5OKwJov2p4pg8RUnF3TS24rz/aEjAICAAFiJYNc9cZAQPOjjv/8AiQwpdOrr8TVwjwEE/sJesPlWB0OspFJ29sJXAI8SD0dyAAM9LL4fdRgHgaEYcBkBIcUFWLcKKLVF1Pl7Kj/gjxIF4PlgvccL5TqvFzo3eDRoqqVTHnfs9SxOZiGcNEIOh3CPEEarYqM/AIOO2edrcQ/KcI8SAqsBdMxSgf9tedWMGy9r8KUkh5aGpNZ3DG3Hb523clawjxIOjZZWKxM7RTZgxXUzO/hJXTnj+cpqTaelcELoglQiXICPAg3QdqivML4axzDbITSTBnQFtwSQcrpbUP8Qol+96+HasI8SBbsnUOAIqXygCYLSEjrAmYuqDe8X7Iv9Nq955LykFEKwjwIHNS9auzKrfVtRyimi83FgLpvhMBSCVKR65OZW4BtfejCPEgeGZPmLRnEBkpSAjLOOa/9wVX8klHDfTfgPBSz5ry0KEI8CA0BkppXErFsYBAiBqrf/Q2J9FB8eAvu5UAvFO+Rjo1HgjwIEksbNUsUXPKXbkxiJwKycIj502LOz09MPtnPUPiwJs2CPEgpakc1nH2q+v5hTXSc9P2AcDLwWc+/TYRSBpCPkh2NkcI8SBJYBpcYIAX0aQN0+SMdVIZYqB5EDT5SaFigkTZrFJvWAjxWQEAAAABCyPtmmHCK0y0W6neGriaLIXoTOWT258qePLKmY1JhkYAAAAAAP7///8CuDYAAAAAAAAWABRwpdKHEXXR957Ad9/eygZ6p4fCqQAAAAAAAAAAImog8ARMxw4ACAjxIKLiI6/vih2cmoc6qeM0jv/yFxNuDqBUAHqYnn+FoN/gCAjwIJjFcXiOVDNwa+lks9Tnl3FsbP0jOMaZvbkbHg7jpSydCAjwIPvqdAMw+4Jwdn+eQGrdWeVo+2RYC4V6N98Ow6lHVnB5CAjxIC84LQEcIBID8oVzSvSkpWbbgBUwRGUGM6F7tKMr5bahCAjwIMq+XaxXJV6+RY80yyr/ojADWRQUbmy5nILnPYBBiL0kCAjwIEpG7Ay5xOoVlZAPRsBM/YAJqhBD3XFX/MkBeIs0uI2LCAjwIDXMZlYlXZ9wB77v1ABYSuJLXZgOzRc9AsyUExTnivpYCAjwIKx1y/3zqmZjDHyzeQuh6YRwi6hC2EzpR2C3Pr+KhAS7CAjwIACUG0tF9KtI3tcILlVUbzg64E2HcLD878Ifhal4GDJ4CAjxIHWTNHPYsSmYzv4Yw2QDVZLAhksCv0pcdy/+zM7kC35ICAjwIMEbrppL68D6Jrkbg/hAaceGV6fMcgsLV46Htumy9FneCAjwIKuYDS4IjoUYXAKr0sHSJpMBpSece+E2t9pcZgrHADyiCAjxIIUIWsyn0UVr+0ACFNIFnzDhTZWaH7p2Vi3Q1KoZdoH7CAgABYiWDXPXGQEDzo478BDmOy1EpcgDntELYKAI/LcZCPEgboc0kd+sBKemZx6Pb0A5tD6p/m95zepASlgQsdGOe9EI8SARZRimN+KawJOnT5a/Ni+I6hB9fDRxXKHGNJFz/5NBOgjwIJp4Jwt+ku/UBgaQlHgBnsG5KEX5xFpu35iOk7zfok1SCPEEarYqM/AI94YMIzhaEWQAg9/jDS75DI4pKGh0dHBzOi8vZmlubmV5LmNhbGVuZGFyLmV0ZXJuaXR5d2FsbC5jb20=","chain_anchor":null,"bitcoin_block":968526},"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"]}