{"format":"receipts-proof/1","hash":"8739be0d13294561c98a13166c71d4242bdca85e5de4fbfc36ac9dc9f88fc862","provider":"demo-bollinger-squeeze","seq":128,"kind":"signal","issued_at":"2026-10-20T21:00:46.264Z","prev":"82e684f7f0d1c8328c6ec96d8382b278f71bdafc26dda1a985021c9041f4149e","body":{"issued_at":"2026-10-20T21:00:46.264Z","kind":"signal","nonce":"9cd99c6fc58b516ed86b0a505ded680e","payload":{"entry":{"type":"market"},"expires_at":"2026-10-21T21:00:46.264Z","market":{"kind":"perp","symbol":"AVAXUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"long","stop":"9.691","targets":["9.855","9.936","10.018"]},"prev":"82e684f7f0d1c8328c6ec96d8382b278f71bdafc26dda1a985021c9041f4149e","provider":"demo-bollinger-squeeze","seq":128,"v":1},"signer":null,"sig":null,"batch":{"root":"efd9f7e624e8091b14ae22f4e23d8d1830e7b5d8d4554d701403b26101e5d60e","index":0,"leaf_count":2,"proof":[{"side":"R","hash":"d41a38878ed770190bdd015b2c6109231adf6b51b8ff5f49b458617dcc1a65b2"}],"sealed_at":"2026-10-20T21:01:44.764Z","opentimestamps":"AE9wZW5UaW1lc3RhbXBzAABQcm9vZgC/ieLohOiSlAEI79n35iToCRsUriL04j2NGDDntdjUVU1wFAOyYQHl1g7/8AjeZ9QUyG6FUwjxIBfWg6qI39I8wIzQJCdkzRVlI5ElCnIpZFiLuDhZk4zOCPAQv4tyXKfYN2LNoNHP1x0qCgjxIBCwJHGqdUotFYIZRusDKngfi3NsHC5DbxCfhT/yS0k/CPEEatfWufAIovumY5pF5FAI8CCro6ArozfbHobn2XFofA+r7WUvSu4L5Cl76gFJOvuIYQjwICOUGAJroY0ErtrKhBK3qxKi8F5Z00TlXFjZ04Jr8zZgCPAgsLbocQVbggNY0wKWyzRwo8rdUNfoDcBdhdRLcSCXGL8I8SCpPHJHx3BCoTLNRdc7829Z+jyHgLHvWztH9VPYX+yK+wjxIO/ejK4zs81jr42G+9E46o1zLqgxUJINZqVcjOS5lLnKCPEgcRIL7qhg0yYfozAecToT1v//40GTTvTYuwyHmX4yco8I8CCcTSweAb8XjytpkTDMTXHtCbaBaMr0rzkZK4F953KvEgjwIO8fLLGkX7NYmkBMbknUuBOX6WUJijqidW0ln5iqoETuCPEg1gDDNiM5mWA0cwJZ03I0/inMMS/uczMK/nF1z1MviJMI8SAx2S4JsVLsXZL/FnnFytu52TIP/KnNQkNkhhJDHXrrNQjwIB+fed8KIHSkv7qIaR/zzCz0C54dNpwV8pqmauxH4gmrCPFZAQAAAAHZXc7byifSxSgDEhUanWSyRx4gPUtt56TPQYxrsL89qQAAAAAA/v///wI2xQEAAAAAABYAFFwYcBV/fqi7qfV3pfJaQt0T9BBzAAAAAAAAAAAiaiDwBFvWDgAICPAgMobobr3FE1mr30KT+25p1Uell+1CAzdk5CjPGs1K19UICPEgqm3fnsyKB/HDSqgT+fqAthg1uFQwS0XjnLxhUE7W1yoICPAgx9quaH1y+qckfDUoDVMhLw6MDxFOCgzKXHUPdWyO+boICPEgEBuJk/zZhp1acx3S853z1tULGWVgGm9uvABY3I2MDGMICPAgiUhFbzvGe04OZoy9fMgMvvGdJ8ysBBEoO0IWpxyDmLQICPAgYTJyc64FEUSt+oM4WgxWa9+bPDsOCh9Y+NAplO+uhq0ICPAgN8TqU245eopkNdLTlTVauPLC5ZkBXPBdES3KYXqj56sICPEg8nzLTe5vceJwE/MCtnePBxrSOvLVejEuy1792S1T0u8ICPAgX4AwW0V9iZT7BAfws7PV42y646Mp0e88VC1//0ItziIICPEgb0EawjZvJRGmvKuQ7ZMZ+Urk2iVKWbWSzwmwqdx36QgICPAgbBc9VRNv10AHr5qN+Zdf5CQLigoVBj+YEcvOLvJstK8ICPEg0d/7sYGFgDL03cheb2DVJK4bJt3kboMUMTvABGNXFUAICPAgHtw6ew1RaZeMC2jyegJJl/qJaGKOG9Vcp/Q1z9wrXxgICAAFiJYNc9cZAQPcrDv/8AjzdW7IHXVwPQjwECxo3bHiB9/man8QkqbZlaoI8CBU7kNRKKcXrpoAmv4X462qIb/Vcsr8mwG5sAyPrjKkWwjxIK2nGz7GnkG9uW99LemaJb/RisU2VkcZYCXtejIy03iPCPEEatfWufAIPJkyY94+ProI8CAQaQH6TWeHiB74Sl5RForPBMkk+2NF9GRO6EZgABzsCAjwIBPQrGIFS0OjU2JBs45tRtYbYBOxGm+4YnZVZPvT/PldCPEggEcGXREI0sXHJD8d4meMFiani5oa/K5P+4RObShAbMsI8CB1TrmT8TrH6cOmiitcvveJbk4RyCknreRVPSw/05anAwjxINR3Ec2P6t7XN2QcOJyUDNDoxTBbkduXUOUS42NjmBKdCPEgPZfbHLY2b7bQwVKnBzkPSYICMCuloLuI78+huphBxnQI8SAJ2URBsCpavOCvYedS/VroorBp5420kZbgaNh9SBZGzQjwIDU0w17NS6ClqwP9L010XaXzpBlK/JxaDrl5TsQ9l1/cCPAgF7XQqUn0S1QYxxRgBt+wQZVFosdiQdTKN3xLWv0XzW8I8SB6juLqkDyWtnUhKtRPllaFR3CCtHI5oErZfP27vMkgqQjxIAZbyzSPfUx0j7DQrRL3p2Wmi3ZcQM1BhcPOKrlVDUp0CPAgmkg1ZR0uAh1uKUbL8bWcZe6IrkuvTWck6iKNPtmzHg4I8VkBAAAAAYx0SR8sQWswI0GSf1P3xuqjZWVQc/rGfABi5VTDBT0VAAAAAAD+////AkQtAQAAAAAAFgAUd3UuhzFbpYi2X+wC8aJAbKDbw2IAAAAAAAAAACJqIPAEW9YOAAgI8CCcAV06roPmZWmWX69JMA1Tr3AnmG0jUvrCxzWKsYQfLAgI8CASn9EQRZ5cIxtHmdCN8+ytwsSUW/5AkMSWZS4OpA0OEwgI8SAjA5HM689IKuRrMqLnnSAQdSVFcw/tvZYg7Wux+E85wggI8CAmoMw1uRunDQX5Hxgn6cAUlWQtBjC3O6bccKC2KL3AcAgI8CCJSEVvO8Z7Tg5mjL18yAy+8Z0nzKwEESg7QhanHIOYtAgI8CBhMnJzrgURRK36gzhaDFZr35s8Ow4KH1j40CmU766GrQgI8CA3xOpTbjl6imQ10tOVNVq48sLlmQFc8F0RLcpheqPnqwgI8SDyfMtN7m9x4nAT8wK2d48HGtI68tV6MS7LXv3ZLVPS7wgI8CBfgDBbRX2JlPsEB/Czs9XjbLrjoynR7zxULX//Qi3OIggI8SBvQRrCNm8lEaa8q5Dtkxn5SuTaJUpZtZLPCbCp3HfpCAgI8CBsFz1VE2/XQAevmo35l1/kJAuKChUGP5gRy84u8my0rwgI8SDR3/uxgYWAMvTdyF5vYNUkrhsm3eRugxQxO8AEY1cVQAgI8CAe3Dp7DVFpl4wLaPJ6AkmX+oloYo4b1Vyn9DXP3CtfGAgIAAWIlg1z1xkBA9ysO/AQcFwNCFhKS6pBKyZvhz8K5QjxIBEcrspu1uRUruktiN6vyIn02zV4RTQNsFY3BHHqAzGqCPAgECJwjLfUp98DmZf83vnD3NNy17kwHGtqiHvUhcasVfEI8SBY9O+OVrAcF+/o1K2o9MW6V9a5g4Kdnd5X5pUa5qfANgjxBGrX1rnwCCkfps0vhSghAIPf4w0u+QyOKShodHRwczovL2Zpbm5leS5jYWxlbmRhci5ldGVybml0eXdhbGwuY29t","chain_anchor":null,"bitcoin_block":972380},"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"]}