{"format":"receipts-proof/1","hash":"ccfe077508de6e0c3b051dc0fc8758d675e91987af3476ff9cf95f689fab147a","provider":"demo-macd-momentum","seq":52,"kind":"signal","issued_at":"2026-10-05T14:30:01.178Z","prev":"71283202b2007fd75469a5b3dce74423885db777c6199292907435b7e8bfe3ec","body":{"issued_at":"2026-10-05T14:30:01.178Z","kind":"signal","nonce":"e81fb46be85c81346b23dec5b6756527","payload":{"entry":{"type":"market"},"expires_at":"2026-10-06T02:30:01.178Z","market":{"kind":"perp","symbol":"ETHUSDT","venue":"binance-usdm"},"note":"Demo bot: MACD cross with EMA(100) trend filter, 5m. Mechanical rule, not advice.","side":"short","stop":"2724.92","targets":["2703.82","2687.99"]},"prev":"71283202b2007fd75469a5b3dce74423885db777c6199292907435b7e8bfe3ec","provider":"demo-macd-momentum","seq":52,"v":1},"signer":null,"sig":null,"batch":{"root":"ccfe077508de6e0c3b051dc0fc8758d675e91987af3476ff9cf95f689fab147a","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-05T14:30:58.208Z","opentimestamps":"AE9wZW5UaW1lc3RhbXBzAABQcm9vZgC/ieLohOiSlAEIzP4HdQjebgw7BR3A/IdY1nXpGYevNHb/nPlfaJ+rFHr/8AjonQiyNVCWlAjwEKkkzIJ8KZYvpgGrA78nYTMI8SA5gf4eH46P6cxKjv/mcGZjghGHwHqsGUOg4mEQ4AM4KwjwIABGL8pMWP/qLsBMpZdVCvJt+ToI2FAR+Am8oPllxFuLCPAgpS0zni5Cj/TmCFDz+9unHLULx+XgqZ+OoN3aeKqpYeQI8QRqw7Sj8AjVtFmaL9kwigjxIEbQw346U1UIphiO1EmIgar5bVW5WrK0siCuyqzzMq6nCPEgdarJ0v8o08f3mNT+uIRqvj54JiiA28epSjs9flSsk6EI8CA+AREwDMQ1tsACR07ynggQBP/vYtZatVUpozPz/avezAjwICfVJ2WeD6L/VG3Fo4RHIWRM/vPXiCgZdNIDa7pX3HM9CPAgEj+D61vJjKWnJcACEo9nTXENqIH2i8JSOfa/wMOgmCgI8SCBu9d/APgcwbRES+FxcmWLDNwz4hvKTdRi27P9h2L90gjwILfJiAGTyPWXNVACExlj6Hb4dqjvaRoETQ9j+HvYpa5+CPEgPQSi6PXqKQSql8RvUe+6O3I7y4e0K63S0ofW2gs/5OMI8SAPI/j8+xSz+ybpyGVCK09qKszVaMNbHqJSxvNaYQeNpQjwIBPA260SOctxzNUcG4J9IPaSMzc6y8DQGODKFWVd2nPICPAg1emkND/GjlCzx0X2LeZKPYuqo6ZZNG97Hx6JeFLMy9YI8VkBAAAAAZYnx5DT7YD3Eht4a/vlHEZ34ORMJ4NTSsv2dJKIyhdrAAAAAAD+////AhoQAAAAAAAAFgAUR7P/kK/Ghn6ytet86PYeZAPPBuIAAAAAAAAAACJqIPAENc0OAAgI8CAZGwdexWwRKZPJxfsyVKCCvWQMn5AxK98ERTMyFGn9CggI8CChGrdyac2zkmiczX5lymoI//LjocrtOOQMYr//scB0SQgI8CDN0ccEQEWWUuVL4/iG6TVg8Idm1GZ1nzn22XR2Rup77AgI8SA2FgME3Itczu+k54n3NNCrrcQP2REssqxeRXosObBkuAgI8SAzanvHdwMnrlvWZ26XSV+HqsCpqnXBWL9GbdgvfOFYrwgI8SAn8kwIPNi/BlzIMscDm9XmJDcbD2Yd/vqyP+CFqVnNMggI8CD4zbkBWpX4/f9XfBtoQi66dcqX7pSeY5XjvKc9Pk7vTwgI8SDMByOiI9pflLl8eXq9YGIw2q42pOuGZE9yuQtUXxJ4uQgI8CACAtigzwKbwJhGUHsIjhHaPRrYQMePPvHvZLzK6EpfJQgI8CC56GfgrDxAhUEQZZqlZjOStD8jcEF2SKMFqYrRpyF3eQgI8CD07YfAuhpqWxVLJs0eat7r2f8V+ix3I8lm4wAREM92JAgI8SA5KE5lCq7RTgMVpGEm8lZ2oYlafcZiqSbzreIpg0NJZwgI8CAi3QyBtl/PELcMBmfsaxzCvbXnVmvpz1qO/oGhNVZBjggIAAWIlg1z1xkBA7aaO//wCJQ9DCa578QiCPAQJvuh6xiHINMNUwXmre28+QjwIFUBMwoXMwbPfHq1+AvDy4DomT2+k6/lo8P/revGYKl0CPEgemeHpIH+qoZdU+jRRhzogA0hNYCSB8eIQ098DWg7ooUI8QRqw7Sj8Ah58CDBAG+znQjwIAp/cHWPyfQwn9+ov/qdguug6Fff6ht6WtEIUk6iwze4CPAg0+WKV6Au4Gm0+7j7qp0DcKzA86qJJcLnBJTq437IVdYI8SDluIg4gJgYp/bwPf+v6ewf7twCH1RS1NJBgKKXDcatGQjxIKtFv8LIsgFXllswhGbViVk6yKXScA0H2emGb34/t2tbCPEgYF6vJIwy1oxOYUiXdhzUShV+zquhEHBO3oodnIpjou0I8SDo9LOkDeJvkZBaIAr+H3QBNJq4gncIko3Nc8EE4ClffQjwINoOoj1E6KdTAzsxygCbfv6sTmdCKT0LHahMJYaqSvT5CPAgjwfUZxPh1bJXPdUFAbnOGERoTfa/hnonFcyqAZtceoYI8CBfF8hGygZI6bLQaU7J+vnnFZnu6Ej+TB56whkzfzNcCQjxIGHNJ9PWuiKrN0PbsIhgRuraP9knUmF0b2oudSkk7QuoCPAgBQCQFigiQ7UStGmnoX+iF8gXEz9LRMUCxviZ8iC1MucI8VkBAAAAAftG9TDIuCsmz8yukU84bqpKH+xcfab8Ne0PZ1RbfBtEAAAAAAD+////AjXoAAAAAAAAFgAUqfBpjBv0LHrW5Vro1N+gu8WMNTMAAAAAAAAAACJqIPAENc0OAAgI8CAenfM5vWZCxiwKRPvRjC3DyfwKBmpzc9SU1a5hQUz6uAgI8SCN8ieQb55EPjdEQaF6sU18SFYmh4UiF3gzMfbeqY2FjQgI8SBdFp2iVDWmWZdQx59CkXS8LyfVRcbNa4W+/ToTdsjN3ggI8SDcKXo6uMFaWiJ2dNkYZ6PqIA/vqWKgKW4x93j616CL6QgI8SCM2LTdiQY+tEycxm8wxwEsCYpAUjzET69q18aGaHPJ9wgI8CCQI/5t2ybcpbu0ebOZb0SqW59hOYHL7zp83yigUXLCcwgI8CCfctwOMgo0vIgzCL9GygBNuZ21+d/oV64X66yfYYRkBAgI8SDZBulpGBohAwxhC9v2asruOCXj9b1EtV+UWKd9QA1wFAgI8SDZNG6Ngq+6KLmE0JVF4oHBdxXHgI8aJf+tN+4Yf0Hf1AgI8SCqZOUbcT8t5ZRpFruncP/P8lxIHejhKG9DwWJVQgXd0ggI8SCJHAQ8rXU4ngl6N8JbdQScXTmlpGWxBAaJDHRsqFjMNQgI8SA5KE5lCq7RTgMVpGEm8lZ2oYlafcZiqSbzreIpg0NJZwgI8CAi3QyBtl/PELcMBmfsaxzCvbXnVmvpz1qO/oGhNVZBjggIAAWIlg1z1xkBA7aaO/AQsTqTl9nF3JKySKhUzr2S+wjwIIWLKqsgnSsiNEhmdE6YFccgXkFyrzMWRsdzaac/k9CvCPAg08a4QPYzqVkG+DCNSKzkQw4nCbVkoXHCt73qZ2CX5SII8SCsQHfNEPREWNGy2ZL8AktphrXOVV1w49s+hlibhEFMLQjxBGrDtKPwCK/pGI/apuwDAIPf4w0u+QyOKShodHRwczovL2Zpbm5leS5jYWxlbmRhci5ldGVybml0eXdhbGwuY29t","chain_anchor":null,"bitcoin_block":970038},"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"]}