{"format":"receipts-proof/1","hash":"839c3cdc6281baa8437eb929e3f95baf659ba136da73ef5d0f3dc53ba334a15a","provider":"demo-bollinger-squeeze","seq":141,"kind":"signal","issued_at":"2026-11-07T13:45:22.446Z","prev":"0ee00f823b47c0f88fba73cc5f819084d0cfc450dd744cc8e18e865d9ed095ec","body":{"issued_at":"2026-11-07T13:45:22.446Z","kind":"signal","nonce":"dde1356b4908062ed99fb430a4e98723","payload":{"entry":{"type":"market"},"expires_at":"2026-11-08T13:45:22.446Z","market":{"kind":"perp","symbol":"LINKUSDT","venue":"binance-usdm"},"note":"Demo bot: Bollinger squeeze breakout, 15m. Mechanical rule, not advice.","side":"long","stop":"10.824","targets":["10.926","10.977","11.028"]},"prev":"0ee00f823b47c0f88fba73cc5f819084d0cfc450dd744cc8e18e865d9ed095ec","provider":"demo-bollinger-squeeze","seq":141,"v":1},"signer":null,"sig":null,"batch":{"root":"839c3cdc6281baa8437eb929e3f95baf659ba136da73ef5d0f3dc53ba334a15a","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-11-07T13:46:12.480Z","opentimestamps":"AE9wZW5UaW1lc3RhbXBzAABQcm9vZgC/ieLohOiSlAEIg5w83GKBuqhDfrkp4/lbr2WboTbac+9dDz3FO6M0oVr/8Ai2kHPi4vNAGgjwEAe6F2KH9VWm69AJtC3qQTAI8SBNdWb4lOhkTf90/wWbqoNUTXbnEFIjenI6aTUChwp1jAjxIJrqJ4SJsivfaVcIeJQ1yA0pTX0cShWCehSc0QYP3bk5CPEEau8rpfAIRIIDowdBq+EI8CCVDz78BIvekWHr5cRrp+2UdI1UIQpHQtnzQb4YBUL7DQjxIA3YudmLUlmy8WADDYV74L/2M9zbGbOENoVGgIkX6BHmCPAgkyfn2KH8bALWzHRfW2iylkdIFaJ7YWWRIzeohru8y40I8CBlsPDJ3ptgdVWSCKfv/5yN+ISLXWchxraqXL9sOI/KjgjxIEZLMagqGLbMMdhNO5zeVEzWJx+DbE62iHzjAAlzOCR3CPEgKwSiFyMUUAzC66ApkI+6iwdSa1XtubAdQEeye/qLcSsI8CDRaILZOe6OnFJ3UiPtwLpretIdtSR7/IdusOYPauAKZAjxIEufmbcrtPwAzLkC2INJksBekPXvF8EByyIJn7wbxnErCPEgW3GEu2lJKxp0CBCYBWDamN5bd/knduysgUyg/GTHJ/YI8SCGIOJVnQdtd8cz1A7OTLlcVYFPmgSLsmSO/+33FS0rswjxIChBr+fjd82eIoZR46xQT+WDVqMp5a9e773UdWW5xq4UCPEgLoQ2DpKVRShmTziN7X6l8g1vCvynolNtcFRhCqNeG64I8CBDJoYgRXxqVFmggd+/7MfnonHnD9I0DuxGeyQ1PUv84wjxWQEAAAABZ2oOj3Dnt9N7A9okpBWu5w9EWuJPd3RYPXLDtk37BfQAAAAAAP7///8CitwAAAAAAAAWABSIeUMAfw4BjH55j8XpB7FngGEgSAAAAAAAAAAAImog8ARd4A4ACAjxIKglBuqV6sTFCuLGMRzjgWOLLcpiYxqT+JtSrOWoWPyACAjwIGtPf1s5F3h2ojlbZszkJwcfd349OFVmPDXVvfrb2uQaCAjxICLBar1KJGvEprJ7FP4gInFCz6bTc1zAxmkwnuuEQW4QCAjxIBC4Fg0Pb8xKgMMUYBgLoud3hg+n19qY9hK05Lqxjh2vCAjwIFBUV25sRiw9h6Zsv/HgwCkIJbnIuS1ao2HiCf/IU9xQCAjwIEnNOYpC0oZjskVUZdahNAgiHAFqlCeZcLpr0FNwPC5UCAjxINTdvrKzLX/ktFYnh/qeZ3uw5zDjK+4Sv4TIirBvDRUSCAjwIC9TyrBdss8JZ4X2DWgLol9drdezbeupP9yfhEhSUCFaCAjwIObfoPfe0v7OCuMcruzMBFgAGl/lr8jiBDQEBzKS8V87CAjwILkkcDpQJpPwh6kr8o8h2eEcsCLQNOv+cwuScYyFzldxCAjxIHCOqpJD3yGgzjOjZqw/DfP1KZBoGdGN8G2USZk8AUL2CAgABYiWDXPXGQED3sA7//AIDhflFNLew+kI8BCSo+H93GtzjJp1oPriDRmxCPAgfsYL2N6EbjA/S0M2eTWwWkqWkAtwirlbKL5m3G5iiPsI8CD78odDQWEEaKThGQZjvbGP3V7Wb13MdYcCaLZRyvyHzQjxBGrvK6XwCPZOiS25Wp6uAIPf4w0u+QyOLCtodHRwczovL2JvYi5idGMuY2FsZW5kYXIub3BlbnRpbWVzdGFtcHMub3Jn8BAjPKAFWbHTHnrwUbME0VWpCPAgCo5KEXLH++8eMzF1Q0JsHu3v08YUdB9KK+QvXIUygxMI8CCaZ0LaST0ZUDODTp1LrmfpDTIHHDYyvvGc51+Juf3WfgjxBGrvK6XwCBrQssnq3vHbAIPf4w0u+QyOKShodHRwczovL2Zpbm5leS5jYWxlbmRhci5ldGVybml0eXdhbGwuY29t","chain_anchor":null,"bitcoin_block":974942},"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"]}