{"format":"receipts-proof/1","hash":"b4cf59ff744b44c75edbe19764a11d748a40f24ca6a09cc0eb391bc3d95e16b9","provider":"demo-bollinger-squeeze","seq":33,"kind":"signal","issued_at":"2026-09-29T11:45:15.435Z","prev":"d10cd9decb8bfb39ffdfea680beeaf902b3441788192e039bdfc0a1f242b550d","body":{"issued_at":"2026-09-29T11:45:15.435Z","kind":"signal","nonce":"728f255dbf690ecfe7c0eb7b04583c08","payload":{"entry":{"type":"market"},"expires_at":"2026-09-30T11:45:15.435Z","market":{"kind":"perp","symbol":"DOGEUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"long","stop":"0.09491","targets":["0.09621","0.09685","0.0975"]},"prev":"d10cd9decb8bfb39ffdfea680beeaf902b3441788192e039bdfc0a1f242b550d","provider":"demo-bollinger-squeeze","seq":33,"v":1},"signer":null,"sig":null,"batch":{"root":"b4cf59ff744b44c75edbe19764a11d748a40f24ca6a09cc0eb391bc3d95e16b9","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-29T11:46:05.204Z","opentimestamps":"AE9wZW5UaW1lc3RhbXBzAABQcm9vZgC/ieLohOiSlAEItM9Z/3RLRMde2+GXZKEddIpA8kymoJzA6zkbw9leFrn/8Ajy7TKaRx9uQAjwEBog9Nik/cm1Uvtzk/QSRcwI8SCj7Oey5iv3XJMA6LUjRhAFby5eYOEUJInvMmgH5iyfHAjwIHKWTnbowZn8S/dAz7Jmk+TTSDNGVcXsGhHJcGOwJfnOCPEEaruk/vAIlRvxv+9ZdBwI8SDzVpT30bWMUX4lvdpfP0ZFPHqxKOAYZJMIfLD3lYE0FgjxIOIMRVX4yNMSf65oK5avFNLXpNLGUhoOku0Y1qsdd8qwCPEg+F5hFYXKuUX8zUNobkMiG8mUgS3qacq6r5L3YMhmo0EI8SB38RYAF99pauNlwMlsUpdA06ftScTjX00itlDgld9/jwjwIDR9veiMUpPOAuP9g7r5XND+nChjSojJHFzCOMa+XlMeCPEg2CnRFY4IV8od6pT0WxrxySa73u+Lk7BmGW7YV7/NiNcI8SC+zF/JDgbMErOWB97Ljw6zPl/TOCtY1JsxzcxzmqYNRAjxIL+svmqXjhzShLqTCglTqQWDYhSkH2kzFWHRd3TXBksoCPAgJJNgZF5VGjLZB9S/y5nt/fXR8TQQ/oNBasCyL3WJH6II8SD9qoLtNvLDVkAFtZk9g1heMttxxnuPBjbKKhKEM5Gf0wjwILsn4PYIubHf0Svn7YXPTaWZPH+BBiATybHdExLeCu17CPFZAQAAAAFrax/dYlNw9uMJqumNMeB/tK/W4zhIHc/68KjKZ0hzTgAAAAAA/v///wIpEQEAAAAAABYAFO24Qf+3DL0Zqs4MTCpvYmajTwwkAAAAAAAAAAAiaiDwBL7JDgAICPAg2OHPIR9kJb/eUvIjgbUpDzgj5Ho+SYnV2/1fj6GxiwcICPAgyyXRfOz/IxPedTyAhTn6EEglLX7lcTLaUnoEkVBdPnAICPEgIHXEuLccoVCuJOq9wjDSclM2WVcfTHl4WpngjIcYTD4ICPAgvFyQwuXI9kvZYj42NX6McbqfD+8i+XmZC0dWHkAjCcMICPAgI7URqU+8lzPMA/0RQyCjMOX3D0BzZ6X4Gk6l4EroP2EICPAgD5ia0NzyhfBwL/LA7fDNA21dj5sJtM1rgH3m3SW112cICPAg4oeBNqeqUXZrzQoS/AXHbW6JBjqE4wKgulk/Fm/zw8QICPEgZM+xqLKU5P4gfneHjCVYxG6faQoripINt3zWFHFS/h8ICPAgchzNRjP7+EBChp9ytxv3BEHn0fwvJJZY0a2ceug+8b8ICPAgdbCZuXHpGqWa/byIUT7I4T2QwCkzcRkkqUwZZIzICpAICPEgPJ1OSWui4VWoVGuzm3QBB8iRhW7lnFLo12yK1WMM1VoICPEgSFq276GBIhxRYIP/y69ohH2yAAkZa1emDAHe4VHhPdIICAAFiJYNc9cZAQO/kzv/8AgY6JVxhzRybgjwECe58FzhcU7CVImZ89uedQII8CBb4nG+rKrHdK6D6/bn2OIs3tTbJsSKMqCekP7Zuj2FdAjxIPDgEj4SA+r7ma0B+Ouu8GmyqynzV4UcFAsKEY1nv2+YCPEEaruk/vAIFdaiSojxZVUAg9/jDS75DI4sK2h0dHBzOi8vYm9iLmJ0Yy5jYWxlbmRhci5vcGVudGltZXN0YW1wcy5vcmfwEEXk0/6TBmT/iPQiYQ0upp0I8SBwOtWoDAVX4Vjed9pzwXLp7ufxhiVNJfkC6EttYviC+AjxBGq7pP3wCCg10BuPlPonAIPf4w0u+QyOKShodHRwczovL2Zpbm5leS5jYWxlbmRhci5ldGVybml0eXdhbGwuY29t","chain_anchor":null,"bitcoin_block":969151},"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"]}