{"format":"receipts-proof/1","hash":"4e7558535bf52fe22060115fe03909f835034463ec231559ecd042ad2a64e067","provider":"demo-macd-momentum","seq":108,"kind":"signal","issued_at":"2026-10-28T07:10:17.081Z","prev":"bc011c89482949a1cf1cdca0125176223b3531aa582ec74c445f59e255772739","body":{"issued_at":"2026-10-28T07:10:17.081Z","kind":"signal","nonce":"1dd8055ce0308c3926435c99fa67a8df","payload":{"entry":{"type":"market"},"expires_at":"2026-10-28T19:10:17.081Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: MACD cross with EMA(100) trend filter, 5m. Mechanical rule, not advice.","side":"long","stop":"80838","targets":["80973.3","81074.7"]},"prev":"bc011c89482949a1cf1cdca0125176223b3531aa582ec74c445f59e255772739","provider":"demo-macd-momentum","seq":108,"v":1},"signer":null,"sig":null,"batch":{"root":"46c9d8effde4734ce7d38bb643a20565bf76bf80a7ac5247e0183598527115dd","index":0,"leaf_count":2,"proof":[{"side":"R","hash":"5e3de2abe09ed13ea1351626a10a4e7b5637e9a51ad4cf23feb538202c216bdd"}],"sealed_at":"2026-10-28T07:12:13.722Z","opentimestamps":"AE9wZW5UaW1lc3RhbXBzAABQcm9vZgC/ieLohOiSlAEIRsnY7/3kc0zn04u2Q6IFZb92v4CnrFJH4Bg1mFJxFd3/8AjDWj0SXm2pQQjwEH26ZjsfMt93Yquhw04/9FsI8CCJhJY0fbd3lWPrqFIJFxP8crNQzyDcvF6tT20sdxacqQjxIAMKgUFbZaFd/PVspRXPddMQt0QJn/QPLUw9gtNYL0CjCPEEauGgT/AII7rbyOKP6oAI8CAoH8diGSoT1Lh90tMeVHjt/h3RWJPf9Um4LxgswGuhlQjxIJexAyplrLHvhwJBb7vuCzv36J5HMKy6id7heuShNk1TCPEgyI0pIHhO+yBsTD/ogbwngqFZ0Vmq9f/tl9svefmireAI8SDgJQX1/1tB91l4t8CafTO4ysQ3OcV5XlSt3JCSAm2phAjxINlJS4rlbH4hSZMaRwVkgCFShOmNvZ9eScfE0CLCejNCCPEgokK7X1jibYDE7PHn06yp2KLQvIDPUpn8IlnK6N8768sI8SAupklBJtObmgr+MPSCRmTW23iaKYsmgAYSl2A/yRgw5AjxIMzjtjpsb64/Jr2RvfmMLN4+nB8Zfo1IgfPLZLWo9gXVCPAgoe+jj2C4cfD1JCu11aWHYm7KtFIsGNBmrvfckMsbpZII8CAICvPIhcBnSW2j3LZXele1SPxRME1Bt6NTdGdtxj0sYwjwIArtX306Aftq5OeNdLTWz/QvK46h+/mTX7H7LcgzIiKICPEg5Pfzct+TIKhwS+aZPiGhfqWEQHFvLmkdLbQkvf4U934I8CC9xZWA12p6eXUuoOSRw01AAP6UZ1VABC3dX/84fPh+uwjxWQEAAAABCPfQs8wLRPXeTWG8gSbzz5DF6OoSr091w/uQxdpZD38AAAAAAP7///8C3UkBAAAAAAAWABQoO8mAi0gx2+Y9mv1WBM5CD8WpkwAAAAAAAAAAImog8ATM2g4ACAjxIPsxZoQSVFcChabg0MW1oIrQa8d3urJJgLNMkrYD3qh6CAjwIE7QT8gPMkHKEaumGtClICbYrNXzm4m2jMI530mASuTaCAjwIIUfy5jfL/2jzPfM6ms8BNoL7rB97DbLFs/0rzkg0lkhCAjwIBBhGoovH3+P8RU7ZpfZwpgV4VmCj3NlrwiLu5vgGOcBCAjxIPtpRew2K7A7bXfU1zO1mYWljp+0QBe7qvgt2rD2ZPeJCAjwIIZmLJpVKhz9y1wXBDTUdbzDXqIkPAbOr+tn6R2HGrRwCAjwIMw3uUczvjA97U/x9f7hsq1FqgvFmWKWwxetYrCJKMEgCAjwIC+ZDWfaTCDYVqxxh9rRmTtLi86c25tpqWpF5iI8lh5iCAjwILJBmE3he2uwq1xAGQXHEbFCJy4Kv3PBW5NRPpua/Ee9CAjxIEZXDrxtsakGNtwzRAHFhScCGjksG0XaqzxOBx0pQOi1CAjxIP7D9hiWYe9cVh793ewv2GWiNkxErqJ+o2F7a2UXXjpjCAjxIJCctGUJUmcEz9N2HpeVsOZlHOG24a1H36HGYnPqI5+dCAgABYiWDXPXGQEDzbU7//AIuAJwgxzmAw4I8CA+cSYbOa6oj++B5YrGfFlehU+alGGIn/dNZN1BwDt7YwjwEAvk7tGcguHPX8p4skxpb6cI8SAoBi+5MU1QYTtReHe9MGk6O3C9tkmM/Zky4uUxLB65egjxIPFUbRTzhiiIeIU17YfGzspj/MjGY6cU//ogNTw++uUyCPAgV+jyd7xPwZwQ3QPDWhcc1fG/uIDl/TWICX//Q125O/AI8QRq4aBO8AgoS5DQBisDAgjxILmHupp2T+Txe2RKx/QyfJKhpi34sp7zT3ty1sjfosfOCPEgGX3AlTIpHJ2ARUcQJmXYzWdcUn8CGgkoMx6qw3fm04oI8SC/e+sqn/hR/28x9PJdgFnKIPPlRfRsjgIrh6ZaHVfKiAjxIIzZMyD9imA6MQR3Q4jRjwP6mrbdGZc7izrXHwbgAAb1CPEgL5/A4rwL/ImpWzWCJG5on0i+tX1Xg9v6tlacVDRWApsI8SADyPSHrekE5Qt+bOFFjRDv1FamXUNYYTeKtCgZxWkdaQjxIAHaZMBPde/KERQVdmOLEyfoLYWodTI7B00hFiND9YQDCPEgWIeyWyvkaEuxajYWCc441zlMNZfnsnc68/+vYPax5+AI8CB+CQRdpqwGIOFGY7KFBO8I01cqUXORpwvjXvgVQeZMwAjwIO9TP3xRBkV11M6uCrHfrtAqnAwvl1YOLSVLS+07XEPoCPAgA8WuXxwxD0Nocjmm7fju/2srVJexhhOuPYOKAFEUAiQI8SDpBh5dGduBWBdt7adD/asep4lMW5Gc1VCJENBk0E6jCwjwIF/qtvmRUzytmfxfTApgWRv7+k+IoEW+yE3duCl0dadTCPFZAQAAAAG0iwDivX4jRxv/eRYtCz4+dv7nvHW2Hs1MIMPtW8BqAgAAAAAA/v///wJj3QAAAAAAABYAFA+hdSvV9eh0d1J0oj3SHdtY/AdHAAAAAAAAAAAiaiDwBMzaDgAICPAg/23wxU/y5eHxucDo4OjOFjh/kXr7Dm+y2UVSgePlGlIICPAgYahAd48N22MKhl5W65uUQDu4ccRTQ6HIUCEZgqNiaukICPAgUagJS5HZqw/cozPWUPF0XjsmdbrPZvnqcjBvE9ZFcmgICPAgJkUCyzNU1mXZM3pv+6TeVtLO1zMsmzXwAWMRYCXhEegICPEg4IGoYfmrUwBi6OcywAT47CpyQLfSrBosq9Zq+mqUwG8ICPEgTmiCarlrOxSvYsM6JRMWDEfc30/g0/PJ2ZRMBZD/GZ4ICPEg7vggAJJ6bWbIov3SkGweSWUOzqBNgz8+5maL93RfFO0ICPEgsTJ+Z6iYg/jklqJVV3X3jtWFTq/tM2+BWiWxv3bp1EkICPEgkwzcXUpnQzrYS4nuwuJbg/CkGCPgwKc2/j1Ir6KLtnoICPAgEkrmIEAMaNls72KR3sw5Ea3wXoKhUMKY5W+891gzK6UICPEg/sP2GJZh71xWHv3d7C/YZaI2TESuon6jYXtrZRdeOmMICPEgkJy0ZQlSZwTP03Yel5Ww5mUc4bbhrUffocZic+ojn50ICAAFiJYNc9cZAQPNtTvwEE04eUqZFporRIIAdcBuNgAI8SAEeJkLQJNLrbjdX7Dz9WyzHCW7D8wDOS05omCj8SmvnwjxIIo2FjCF68bZN9ZMavs9GqYXz6KilBstLk50RADyrAG0CPEEauGgTfAIIX/U4SgvBNwI8CAXimFxEuKI0JdnIDsyDElp0EpWgJpHEcedy/3KkjRm9gjwIEGeoMYJyDKC9Vpf6aovlBQ0YCm0/wWHzeMo47tJfcqYCPEgNYGvx9jw+g4YjT0KHPasO6Ls4QEnvljTyQh3hG+3zGwI8CCJv+AGE2jZv/eTJdi+7+lby9XN3fWR72ZjPR/2NCRUAQjxIEnFLDNbH+AxNb3voMa2ds5schUqiey6XHWSM6jRpTOQCPEg87to4aKGwWBh4zzi42OaYInlqeCazOKE8y5NvHMxn7kI8SAoOq9AhhUHOt+t5SWwPB9MV7VHqUsL1hUpodoRcYO+HwjxIOTa0Ru+CyR6RU7ghTfqKndWPy6v/COs6kmiBxwu4L+lCPEg+cq4qbAoLuBgZlxs5JnaRFsJCCJiTvOHVYi6/GP39iwI8SB6+b0vopN/2mOKDXvrFA43HQqHQGeQvrdZhI/arnoM4QjwIBWurQpyeOAp6VAcchWWUNyabSEAvPpd29RzlqclvlIECPEgE/8iHODP3yGuD7i9ePcOwqjrqqON8O+VTQDz4f4eb1kI8CAKqAUkg3SJfuhh4mCoOAtrvborFKIAnTRNH7I87aAokQjxIMU8Fp7/Ag2RWlvIdTdNcmC0e9q0EzEn2SwRaWnD5hIMCPFZAQAAAAF/2ZPPQCUJeK6HNY4wBENNV0H8nwz9uQBsUEvjpixuvQAAAAAA/v///wIeHAkAAAAAABYAFEhXLo3FyHsaYxCv9zb44Y5koh8KAAAAAAAAAAAiaiDwBMzaDgAICPAg3CRiPaR0kOpcTwG5i9lSzaIvMtYokdeGQejDi+ZrhHgICPAgyRoqrpfz/dSCJ5GuwsTa5d3JW+HolHAZLQNt7GZ3ApIICPEgIHW/b7wiKDNrU8nk+pSUbYe6a+lpGa2tZ/xIoDL21GkICPEg+xjcQZ1+j1S+zssqKgYX/5nj3VmNtr+svaNq4Qe4QZwICPAg3dfE+9DFgqSNAe00ndmkCSEV+gi3nPh5ArDvA1J5IPAICPAgLdH9GN1mQPdpWvcsdlqbiDKUNh8vmfcErShsJOLbPscICPEgO13X49XQmz/Uz1wqF8oKKmzFwGQwja1e2DSDJzWynhIICPAgL5kNZ9pMINhWrHGH2tGZO0uLzpzbm2mpakXmIjyWHmIICPAgskGYTeF7a7CrXEAZBccRsUInLgq/c8Fbk1E+m5r8R70ICPEgRlcOvG2xqQY23DNEAcWFJwIaOSwbRdqrPE4HHSlA6LUICPEg/sP2GJZh71xWHv3d7C/YZaI2TESuon6jYXtrZRdeOmMICPEgkJy0ZQlSZwTP03Yel5Ww5mUc4bbhrUffocZic+ojn50ICAAFiJYNc9cZAQPNtTs=","chain_anchor":null,"bitcoin_block":973517},"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"]}