{"format":"receipts-proof/1","hash":"821e2f7eaa7b67f3095366e1ff11e23c51b4b096ef0e8952217403def0ea07b7","provider":"demo-macd-momentum","seq":116,"kind":"signal","issued_at":"2026-11-09T09:35:42.960Z","prev":"e8befca8643bd688e6389f1ae3d90a49f91480053bad0a5618871546bab8a167","body":{"issued_at":"2026-11-09T09:35:42.960Z","kind":"signal","nonce":"f0469e825208263bfd5de2674e819e6e","payload":{"entry":{"type":"market"},"expires_at":"2026-11-09T21:35:42.960Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: MACD cross with EMA(100) trend filter, 5m. Mechanical rule, not advice.","side":"short","stop":"74455.8","targets":["74003.6","73664.4"]},"prev":"e8befca8643bd688e6389f1ae3d90a49f91480053bad0a5618871546bab8a167","provider":"demo-macd-momentum","seq":116,"v":1},"signer":null,"sig":null,"batch":{"root":"e712ee62c4ed8d562f0d6f1c801895c689be1f8a1ca6e1fd63a27ab0e58e1ad3","index":0,"leaf_count":2,"proof":[{"side":"R","hash":"992e6c750698f1745ff31dd365ec9ddb7a02b5786d4134a784185fc1c61a11a9"}],"sealed_at":"2026-11-09T09:36:37.728Z","opentimestamps":"AE9wZW5UaW1lc3RhbXBzAABQcm9vZgC/ieLohOiSlAEI5xLuYsTtjVYvDW8cgBiVxom+H4ocpuH9Y6J6sOWOGtP/8Ai+OCZJqvowlwjwEEOcB8xUgHHvvhyNVJcBOfoI8CB2gzecOqT+0azr7JLeWO2FOdvmjX1/e9ESg2ih+ZiUqQjxIAdUZg8RjlsdP7YxFcVyOObHLDuYPv5pTkCED1UzbVVECPAg875JWxh1fv8/qetwiYnB5biQhvx4SEJai1JwQXm22VMI8QRq8ZQn8AhFS4WxD+JsNwjxIC0gTIPPhNQjRjM1Ht1HaTXviGFIvD4mCGoCMTh29l4fCPAgV8z5fQ1sSkLatBHUOWkfL1CwwY+ImQw2IEqiHiaKPcsI8CAS/GtNvLsl5ByBdLQ5qjUVG1HruRzBS0JGnlCevXm+1gjxIOwiabXnRPo7kdarIdKjzq3PwZIPFeF6r+i3Bh1GOmP7CPEgt68lbfbiINhO6CQMp8/AQuTV2iONoACl1MzlQGbAtmUI8SBen+iYlbG860I9tuC5XKvco9Mdd00BR3e7dwbREPfIsAjxIFlMHlM3nt8woiuMy8WcDnAwK15h2tXMudroL6yvmgIPCPAgQtqJDwrEf8Oc4ywg1UVAL073D65waHTskrKwr1b0T8II8SCL2Sy18K0afuSk23f0hh26wgUlo6ije2gQf33MlrjzFgjwID5E+w8kC/9ZzzH1d1rs0HTbISG9E5zFsfoFGRG9yDMqCPAgcdi7raKBxL8gdbS353E/15boPiVL+s1r2LzzvRcY9KII8CCSUpitzZVCA/lR8GOP+QplCsOGa+MzFafPaNtTUqO0QQjxWQEAAAABm881/Nwjrqx6X4hDXurpBVaMn4OJQi9m3VztalkusL0AAAAAAP7///8C2cUAAAAAAAAWABTa3oxG2QwayNjrd3EQ0FgbDxJoJQAAAAAAAAAAImog8AQ54Q4ACAjxILzcfsZ1yJeattVVdxYTuDHY6KrNX2lmz9yf92gqK/WBCAjwIJtjkcCOYDOjf8H30gG7OzCNjX7CTz8Pp/+M/aBkhBRjCAjxICWmXkyLVKhngQ6GwaPBdi5A39FMp+4U0fgOsjJnEJYeCAjxIAp1zYGzswOw4+FuA5lCuAouOw3Vb3s6tVT91tRpX5XSCAjxIEscvr9vydPg3+A8W8vsKIw1MmcfRODF1xhOuPJYX0wKCAjwIO//LOBghGaXUqyc2WuEPfmTkzq8V6H9QRrW9xwPB8saCAjxIBh/H+q4B40NjH64i1t57xXRNpoeS9JxtW6+li6LQQrMCAjxIJ8oMg6PFv4I8IgI/CTD4Df/mmtzbDbhJ3u5O+3dgrvxCAjwINRAn3JyxEElx3VMnQw+UibQ4SHUcGMTiSmwOoBe+pOjCAjwICosqeMdQ6YMfQbFfRmnVM5aaGINGEWuv9gIt4aecPVcCAjxILqJMSUblcA6VDt+LbksNOcEvNSMtylO8pmVG+e8z8eoCAjwIOd3vOAotB/0UMGhg38rn9I7Hi3QjKnSeZ2IozWhN9RnCAjwIANZdjxN/eSNtoHvp8N5I3+m454QSl4JBfeMcn62Pl3GCAgABYiWDXPXGQEDusI7//AI9vjm8nrk3SMI8CAVUOb5CyU7NeSrnaJqsk5NARI7DbIVardCKFQeB3nv0gjwIKZ89VRCX3fLW9or/EWBcNkWGBAp4/SSheWMLg/gXXjRCPAQzf4pJeyVS/k1HkpEDly4IgjwICC2Z+GM6xsv443bPbYI1pVYD/e/ZloaFszvfQdBk08sCPAgGzq2ru7Ap1o5ljEC3crLa5QPIMDnwQNdMnVCALEK738I8QRq8ZQn8Ag7PSIq0sXFXQjxIINS3aOe/3R8ywhypk0uumvx8BbwkrJTbABBXHjNdn/mCPEghR79/eRLmOPqPeEpDJSBCkQKuHmzS8Z2T7IMhP/D9RoI8SCCSPhBTEtcXpWRCHuihmwurWShdjrN3BIhNatEs03UdwjwIFZtZkxA8IKE7ZLTus3hxI6/jSnbCerPnlrFYOemZjNOCPAgblSJdTwKLEcQwHM2EurYAt8XuPT9wGskHgN/MKoBy1oI8CAsZlLeQ5WROXXstFx4+DFMBxArV6BDHAE4kvxJPnmFTQjxICAjZCyrFg4NxXWAjPTN2NlJ5tk3WKELz5b08eE2HrQmCPEglPOhf9qz4LhlAEQY2aSiPMWEvFHU45wCS/axKfC+wJUI8CDrJNIa9g1n6KOKFgdRuzUB7VNzUcrWUwJ6hBSP2KbqTwjxIHM2GbsKpJ/VR/VUY4O+IZkVCcI6msJamOO7XahVnkPbCPAgP3xWFmXwz0pSlLBAC8vJ1iDe90lqNvrHyRGzePRVAWkI8CBkOzK62P9Rvq4AuUOleUijS5OSC5aO10pctq0g/KjUtwjxWQEAAAABsf6gqxCTqm/5oKjzVgiD43vNzW0iikaAU/nVHX3BzZ8AAAAAAP7///8CylIAAAAAAAAWABTqukt7KI4WV6fyMvdqyed9AA9mqgAAAAAAAAAAImog8AQ54Q4ACAjxINrZ5ne6gKCCvRn5yQ7dAnsYQPkTe4i6ue9kX59qWJZNCAjwIKxv06B9TI/z2dppGWQgcvFDFp2mQEfgHa/U6omMTDVGCAjwIC3bV0vIzierzZwXemJ4YsZM/CoFeIjTOAHRV2G4kCFFCAjwIJWVe2MXUtwNun02e3bqvU1PdD5wz+BD+uoWLEyImXIpCAjwIL7F73KKM6hMY9miBJsDgHV4GzLrsmKL+5O9tZhQbIYLCAjxIHRHYysS1twK54Zt+uhr95zODUlNXjjdZsBKoRVuCgwmCAjxIBh/H+q4B40NjH64i1t57xXRNpoeS9JxtW6+li6LQQrMCAjxIJ8oMg6PFv4I8IgI/CTD4Df/mmtzbDbhJ3u5O+3dgrvxCAjwINRAn3JyxEElx3VMnQw+UibQ4SHUcGMTiSmwOoBe+pOjCAjwICosqeMdQ6YMfQbFfRmnVM5aaGINGEWuv9gIt4aecPVcCAjxILqJMSUblcA6VDt+LbksNOcEvNSMtylO8pmVG+e8z8eoCAjwIOd3vOAotB/0UMGhg38rn9I7Hi3QjKnSeZ2IozWhN9RnCAjwIANZdjxN/eSNtoHvp8N5I3+m454QSl4JBfeMcn62Pl3GCAgABYiWDXPXGQEDusI78BAr7ekK31R5DErn/IUo/S9nCPAgZDppLPjSy6yu6EPrcR6rwwftPX/fpQPZZncnPIkVa4UI8SAku17Q/HUdZ7U3ySG+F3KuFKaKWUBwRYEEqrCT7qpGLAjwII5mpgwxyOHkmZZuS1+I3tuv2RhDjP3SXHMnbGTu90pYCPEEavGUJvAIQnILhFAtI7UAg9/jDS75DI4pKGh0dHBzOi8vZmlubmV5LmNhbGVuZGFyLmV0ZXJuaXR5d2FsbC5jb20=","chain_anchor":null,"bitcoin_block":975162},"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"]}