{"format":"receipts-proof/1","hash":"24b1f54e3c2bbca9e2ce51e4330aee67231a6384620c7f87fa38f84855bdbe0e","provider":"demo-ema-cross","seq":14,"kind":"signal","issued_at":"2026-09-24T23:30:18.322Z","prev":"1af7a900cb5dbbec4dbf8999ee94dd661bcd14e84a4c96aacf48fdede1802912","body":{"issued_at":"2026-09-24T23:30:18.322Z","kind":"signal","nonce":"7c1dc6354fb3e99c1566993a1868b548","payload":{"entry":{"type":"market"},"expires_at":"2026-09-25T23:30:18.322Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"116.34","targets":["118.08"]},"prev":"1af7a900cb5dbbec4dbf8999ee94dd661bcd14e84a4c96aacf48fdede1802912","provider":"demo-ema-cross","seq":14,"v":1},"signer":null,"sig":null,"batch":{"root":"24b1f54e3c2bbca9e2ce51e4330aee67231a6384620c7f87fa38f84855bdbe0e","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-24T23:31:08.313Z","opentimestamps":"AE9wZW5UaW1lc3RhbXBzAABQcm9vZgC/ieLohOiSlAEIJLH1TjwrvKnizlHkMwruZyMaY4RiDH+H+jj4SFW9vg7/8Ag2RJot3fBP6QjwIFiTcafP+w2z/GBG+fzCuzDUDGj4NtgNl6Cbx58fTfMwCPAQWy4hOHN1umZ0oc0H45SrQwjxIA7SMUi+grdQDpA3x9KdvS6lbkmc06xba3NGsdc+2wmlCPEgAVTBbFBNaFUKPG7mh/vHySsJF2wDeDdhEjTUh1j9GG4I8QRqtbK98AhRRDWRTw7NVQjxINZ1fCaiwMJU3MJKWadkea9sFCNJOBBfiuFLlj2RgrRxCPEgHd2UzLjIaQVz2sqw8x9tjzFtCfljP12zadXcxpkOA6oI8CDQgX/T01F8ickbbR3bwBqPVrNvgC1G3MlnqpmI0JVGxwjwIIy9fWzbAc8YID7ZPyUbATEoYn5MvjmFs4WDc9b9WhMLCPAgvuSpWiPzYw/fNW2+WIeYzJapYARgjlu++a2p7q4zXQcI8CAH73Rc3ACxsf7Gk2yaaJkqLXRP7ZpidRJ662tTSTu/rAjxILl+zXwIlp81eN2oYdNdL+kvtdSCS460HJ2WSiGPOlvGCPEgfyROT++HtZp8Czh1AAeaLkzusovh/KlBIUVJMOKN8KwI8CDBqE4Y4IvIiCI1SIvqCoI8CFtl/6nKfpnCq64wBKSr/gjwICZrfVtzLJ8H7910LkpzUE0bRv2D8m+2XgCwSvz0EcmKCPFZAQAAAAGGRWB53YW8EFfEBCsCJg5Auq1eA7r07OpzVOUkuQSm/wAAAAAA/v///wLLjQEAAAAAABYAFHus2H/DeuCtvuZxDY/ExgBtTmm5AAAAAAAAAAAiaiDwBBTHDgAICPEgApUAcvJoVwWJWrc2bOjEUsYPQtFS5MjN/xMw8GLZBAEICPAgpaW6zOQtKiFhglWJg+ynAd9CgRKgfClF//STGzliI3wICPAgMSEWw3InSxqLcA98roKVtZn0reD4y9I2qx9gHFnxVkoICPAgzRw45LPUCT703Tw3lz6QYXFVmKGpyFG8Of9FHS3gvcoICPEgxJ7FLDiC8S5VE0mhY6z5mCLxixPtVVEr2Xe3ihf1fMoICPAge7htzZGu0ik8ZFlgPMFUNBA0IaW8kjYxn7QrXSREL/wICPEgBx7UV/xsenRCbMLIuRx17CxlvrPf5G6UhuoOX+1OI2UICPAgWjtvRLvGZVBdbQyX11QB/27RcAr/tp+OXNQ0S13dZCUICPEgsCYporjrG7kQBALyNMiAFMb2F0QLXkxloujtv/PHYdoICPAgkdLqNdQDPFpJkr86iyu+QxM4rtR5CiazECfYni7hhJYICPAgiOMEjLnb6PljaD+A+HLTQm3Ep+37FPPdFAxzsaxRS/UICPAge4bhHKSWuGFhetDdEQkEpS9Q7De5mf27wuloH0G9Rn4ICPEgFN/gZ+U47sVBHwj3tPSnArtK3jUMrv8U9DYQ1VyzV5cICAAFiJYNc9cZAQOVjjv/8Aglu0NcVQwktAjxILb9aoVI6+x8KpUKCMC90fJ/mCxSPgh2RdtyUATbB61TCPAQiYsA8uqNbsaRY/4B85uhGQjwIJYjVZy8N+4EjVmD7KRg4fiu7TsL6Jy9VToug3oXWp1cCPAgJ23UMc6+hTMGrSF8LDeVk7QJEG9fcepcs+yuHn6Hc5oI8CC+dLXw6kNH5fmPUhgYCHLJUn+5Tl5ubHZrC528hWyD3QjxBGq1sr3wCEpEZojypRiECPAghfaE3RHBGzUPMKnGbPREReMBNnaVCtoOscLvM2yVxigI8CAVbmCSdmDlsUI44dWw0Lm2koVVgALdeLIGEMGxatKdUAjwIN2E/FjNyL1y3aB593mtY8reNgmA4Bj/6jjxudSwyrAuCPAg9ldpGshGMLF4Vgfo1e6YcvJ0YplRXmju4H3aW6D3C+wI8CA6ioWP8HIsGxiMpGFsmx4fN366ROUe7k2OGKBMDpmFhgjwIFHhTzRShN2BxWVJs+NIBX+Hc4Psb9OtFmKSf82//hIXCPAg0v6EJmLjyZVtiYWEsQLqR3crdHuY2Q4C87aGFWIa2q4I8CClWsdxIfbZDrYDXXx4/VjfLclZRwm7QnDk42MOw4opsAjxIMndEHKzIlnGuvZk7m60TOr9q1sstrSE2QGuAhIulRqpCPEg5iHCrpT8/UNWXv+QljYdjLJ5+T/yTYbN4JaxKfvbimcI8CADLCJ6vOWrkVCYk7csAS14zp13lpnCR6tl89hDIRpumAjxWQEAAAABhpoCe8u2Zb7pJlTzI+YtcISyrrNCA/UCDMiJJvQBtbUAAAAAAP7///8C7zcAAAAAAAAWABTZCaMKi+NlHLW0a7hVRcV57ieGLAAAAAAAAAAAImog8AQUxw4ACAjxIC5rIvurK3bXqauvtnPjK0unGX15HukGZE02yRS5NtsXCAjwIHK7woN5DYonGtoA55FB5gqjKjkgZVxzospM7qlREgGKCAjxIFz9W04SivvVuAq7Q+4VZdk2WMWrBOPjfvo652E7OyG1CAjwIPNPmH6ebyh2FX2Yte/OUUdVaRjkslqN498uBtQrKsZNCAjwIII9BlVY2veUqeGPHTzV7/wv7A07crWtfYTZRcS9bWpxCAjwII0BahRE4cK+fFAdmGS1GiLbIN5vabfIU0Aajm+dn+7JCAjxII71IPXvZjS5qlf5hrTDvo4l4od3V+ahv9yV0Ry9HTIjCAjxILbltCXQaftjeAEFzHc8+6j9qVMxuNLFRrJwC7mARv3UCAjwIEBIJg1FLU5ejkiS0JdpEb2/+q80eo0gHjNHwc5YAdpJCAjwIPwqEiMp0Ra0JpTU7g1DoHIZ+rRQJzkNl9f0Qr6v/4bBCAjxIFHy/SeMsyJ0X3PRUHHbVbyqgYVuiPJDoHOHEYVSV9yOCAjxIFGjSSD9GL8+dXYQDsu2qfS+P8xhgCCFYm8OqTfKsOgZCAjwIFbLc7uzJGtLONoojFea5lEIPfKOY49s0q2RYl2O5qjgCAgABYiWDXPXGQEDlY478BA9BN7ItqWGz6bnsgc0ZuWECPAg4B3A4UJWKzNFa/SBsBrlbT2BI+BTfrYpVtZnJyAmcnII8CC23UlPW70NqTlmLah+BKAzBLlzHHfHlLl02jLUmbPqwQjwICkDJUZfR0rxKThDmpyYpyAjjJd1TL0YlqAZn/9JO2znCPEEarWyvfAIugE4tW2mBRII8CBN6FJaQImS9b1II8jS+9XrMAnD+NMV5rHCbOpv7o31swjxIOEL593uaeHxTfpDXeadCKiYXRt24gDhFmDTdq2GY72nCPAgRth2eIjFRYd6iL+t4AE2qrvCV1TDm+no4l8a7IEXHcwI8CCRqV48Kmof1f3E91VhpoTP+AiewQ6jRCXnhyR57BK6QgjxIIhPPcCX5o83l4D9wbqchq9t57TeKfjQmxz0PkndDegbCPAgcU51qsLHYrcfQzkNSF6NNOUjMFAWQ28ZWANa9g2OhMkI8CAKxtvrWkLhLrltf1nzEtpv0YxdjCl/oP3KDjEnlUGcrwjxIEuZUB2rjlVQ1lv/p5btklWMsitVFZ1PNYdJeSgZNp9wCPEg44rFX7OHwtdXRWyuYneK1N0r8y//TQWGaU+fGZJcECcI8CAsXQ0rccsKGyTmRSpPuyvD45/GKtJFweEhtf2rwfAOYwjwIBYsfRzO4zpHNolgEaWQP0FnXgRqc2ZCvN9iy/FHQURzCPAgADmH7u5o0asI4X3tHnc4NluwvedTsVEGk5eo/Dollm8I8CDGdmE7dqDOkvpNviaJKmvnwoIoSLUlVTGK36ZVef91XgjxIPQvfdk9YRaQA+7+BGihqTfxn4eqlH7cwCTefVpc3iq+CPAgphxohuInDQ4NCPZ0Z6BN1TXb1dvUSbBqYurJbit+2PYI8VkBAAAAARravj8nAxON4yk24x+OS8+ARB1LLU6S9dLz+rPwRBooAAAAAAD+////AkQrAgAAAAAAFgAUUBRrX/LgaCNisCGFpXH/5FaCGVIAAAAAAAAAACJqIPAEJscOAAgI8CBPEeLvhoC/HIAbhjGKMHAy8Lj/RNTSP/1CeioQBQkN9wgI8CAqFMnUErFmIgbxnj+otB9RRM3AH3i/Fd7apd8lkZbtwggI8CBT/QIdUel/YpQYVX67I1LLmARBJ4XYqkcra2MPKyflAggI8CCW8bj6fDHY7+zK9MSGB3B6s5N1WU/JBnDmw5Ay813cfQgI8SBiiLi+X6iKyJ6pFxEgqw9PARP1IZOtRIGPDdyz1GbcqQgI8CAO5wICLwtoikPg1E8hk/gJE4vqoPbslqaV5ccyYBE+FwgI8CAYYu+U5qZsvq+AOSq6D/NI+nhO0ihTd/ucptN/4Bf7HggI8CAaS8gl+E6nZycf0RdhZULEXkJsl7pE4T/BTWESa7dYNQgI8SBw2bxx5xiExbp1CbNZ6jeKeJnD4870IDVWepdJJzUFSwgI8SAeYEVMC3ffrnWB3KvZtNPIkytA2ej/WHwDKyANnfNRuggI8CAzahA98MpZO2Ppe/danHQMTHfag69gr2L/m54jIfETfggI8SBZdX4aaTIb5tdoc78KgYkpdURs2wVUenfTL5KA5WS+IQgI8CAUVbZNEg3FYpWPkuS3VUZ328rMqJ7ZSutTcKD+9Eco+ggIAAWIlg1z1xkBA6eOOw==","chain_anchor":null,"bitcoin_block":968469},"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"]}