{"format":"receipts-proof/1","hash":"84c39cd2fbe43bbff49a58454a1bd37717eae4cbb3033cbd76a468ddf977c042","provider":"demo-rsi-reversion","seq":73,"kind":"signal","issued_at":"2026-10-02T18:58:41.748Z","prev":"e15844c3203c972a0627dba00cdb0a10033d10501ca03d39aab3815b45859cc2","body":{"issued_at":"2026-10-02T18:58:41.748Z","kind":"signal","nonce":"8909f5fc49dcf034fbfcecd32d9211fd","payload":{"entry":{"type":"market"},"expires_at":"2026-10-03T06:58:41.748Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: RSI(14) 25/75 reversion, 5m. Mechanical rule, not advice.","side":"long","stop":"83915.2","targets":["84454","84723.4"]},"prev":"e15844c3203c972a0627dba00cdb0a10033d10501ca03d39aab3815b45859cc2","provider":"demo-rsi-reversion","seq":73,"v":1},"signer":null,"sig":null,"batch":{"root":"84c39cd2fbe43bbff49a58454a1bd37717eae4cbb3033cbd76a468ddf977c042","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-02T18:59:41.754Z","opentimestamps":"AE9wZW5UaW1lc3RhbXBzAABQcm9vZgC/ieLohOiSlAEIhMOc0vvkO7/0mlhFShvTdxfq5MuzAzy9dqRo3fl3wEL/8AgTJV+tKrABQgjwEJK2qTvqpGoMm99iLXprhA8I8CBUB5v1GeQKSCzw42ptobETdKj475IIoB6cOyVxpkJu5AjxILdF1RCWe/4ISCkVjfXKgh1XTTTaAjRgfHSqvwikGFajCPEEar//HvAIH39JyE74VkUI8CAwcxocsGY0rZrK8KgMOChALCDJDzJNj/+flLwalqL30gjxIBPqXuikjLl8RXNkMi3I+j2JKR3zwwdDFdcQ9qQnhPyYCPAg5eYDVygTGP85vpqnVOMxXTk+W7DuPwOmPDUPUdtI2LgI8CD+ap1QZdIebiDLMRUkIwchT6gNGmnnP6qO53byHDGMzAjxIHGg1/ZLFXiPjMBFwQPXNL4Dl9TROJONVJE6061jIwEmCPEg734fr/LNefk6P4t8oW1cdKTKsy2C6w72QkkAcdgM5A0I8SDpis4oyyOXQ92Od+JAMD8ABs86CBRK2ji5zBeN5HF8EAjwIEHquNpi8natfcfzNsdlilzazG+Wm34N93V6Vwi1mQzwCPEg8HatYCzxelQropD8pkJF2Nvv2Msc6fSRmfZdGrKte2sI8SDWdBxCqo4ryeWth8nCvRFlENwp3zROyzcHH5N6NGR0QQjwILq6hM7T0todTCYYLrKoRY07oAh7fNkOtgehgIaore9oCPEglaNd54CupyjOsGRIPQrzuyGGENcNzglFFbpOSMfMBgUI8CCrzAhNTDAv37VXWNmbBdndeIbnXM00p4YLm29PxnwtcgjxWQEAAAABRMnE9x2mRr/SpaOcFU+HhiPPiFXXe9NyCX0wjgY5/IUAAAAAAP7///8CnikAAAAAAAAWABQjbkR0L82vY+dwSY7uvxjajcTIsAAAAAAAAAAAImog8ASayw4ACAjxINeXLzemO5jLazAUYXErweNx6b1dssxjKdnFtwMQEb5dCAjxICLMetFFAUH4+CmrDqvpq8ka/KK+NfH1n9lihP7k7gCcCAjwIAsR8jFB/UkdSHl/yic4hsiEHw2YOyubhrjdX4MtEDTCCAjxIF4s5O5/0T8WP1THunKicL5kgBcGET4csVXuIt+EhBsVCAjwIBtP0+0QYhXk/XgFD1m3pVkdxkvEBJ98ObtHlU8pPRjnCAjwIEIvKsfuuCzmbSs+CpVjCYJTcRKBf5/VE1XowLF2SFmvCAjwILROkQqFw1r0KLZ0bNCa87wZlczGQEgEXhkydG2sGOhQCAjwIAi23OgFz0cMMntHn6ic8ceCcMosWUrJxOY1wir/SovbCAjxINOQnJGSKD32jD88DG+xfNdXraZTG26qfWGL8LpyHalCCAjxICRG80wTgQgsmw8+oi/+3itZMoU/l/89KZryx4dvoS2CCAjxIAmObUX2G/6goWTIEShNM7mUriJaXm3H8w9OgYyjnSCaCAjwICuKVKQXAWq8+3KMsUuU3C7bCxdyui1Nw3Y0GXaNG1J9CAgABYiWDXPXGQEDm5c7//AIisDwxHz3WW8I8SDVtxzsbd+8SO2dDYIkRUVBCilQ9Bupo1wOEXjRDDN09gjwEFI9UhEHDuDjVQJ1SM00DgUI8SB+jVwZjPL7abWQSTR2Ke9zUKuziMroECl+5FpJl3FTWgjxIBvqTzibaaNqDMGZQKa93/vQWMnOZZp8H6UFTbb2d7ZqCPEEar//HvAIR33sDyodVjoI8SAmHDf3UrA9qK/cNHnqkP063IImVwkvWevKfHOsdzWaagjwIE1Bt5RyerhXBWCU8BTm4lq4LUoxs5U4ut0zT/xFJc+nCPEgZ1l9Lj/HWt/nVie6bVBCCJFL2sB9LT/qgDo1DpXBoOQI8SDCjKpWc0AAcXCcsJRi/CnPPSoUPY3TQnSMk6RPDaDhagjwIMxsFnLp/pBBbKFXTsSX6kzi0Xyl32sqxi8dKv2++4sSCPEgRmr+Yx6eC+DVnY2PDKTs0LC9k7n9A/1nVEbufPfXc80I8SBuLB1++aRb/ZJrIgC01WX6zXBcFWhIxgiNd155IO66zQjwIA6qNroKzh2T9zFdVWxnJZIXMvPCDwbdLM7o12X4gvZyCPAgq16wBMWEsgRg10mACoFcjcF3faPrjt1CcUU5QfdyaEUI8SAZDwJhO/nkdGIJlC3cKSr/d/mwCD2aTNPmV2O2WzE+PQjxIFdl1sXpJSwH9ww0eQ41vrpA7L+497L9vN1xcgKKWVj1CPAgzBTDybIv9F6SxGOcdZO1xVt+dDGmlCXxGcBjI8WfNAgI8SDpkjqrbvUnssB+CKk9q+MUwlrSHG9kI0xD6jY+tZ6SGAjxIMWRHCnLH3Q7CiAH7cRSOaohCn+kYhsHhQdzJx+oSdMXCPFZAQAAAAG42ecFroSVjHzaEPWeE9/oi7tPVjEzYhN7LOCUhuCnUAAAAAAA/v///wIAVwAAAAAAABYAFBC6mZjF1lex+XVTIbhtRx8Xeea9AAAAAAAAAAAiaiDwBJrLDgAICPAg6g4xkxGZO5Y1rUvsmqAtPZCgjDmDydbTFeIS8iZ77+YICPAgTlK9PaZfUVFTw+62VmTw0gt7FF+7PIh15UXJCUlHs2YICPEghV5wvn3PPTsuaus1Opf7j7hzqkQWOelS+4dFWwfeIw0ICPEg20tyjzG1QuZhZEq2OftPlYqZ4IgH3X0LxELIpdnJK/QICPEg7M9UnlKWnuwx6cktcKydzxVtvjQPWW44utEOG4dKK0sICPAg759sX43MoyXgtgRMJKH8D+V5GpBuyDaQ9BEfwkBJ/dUICPAgTVeP5ji9+tK++EHNPgtVkaNl9v94unaPDpQhAI0W0pcICPAgfIA/e66I1yayb9o+ZQHR1L+MwzbC+j2AwNQ1olorQHsICPAghg9dy6bBFQBWVlN+rwaHEY6SvQk606ujrqz1/njmq+gICPEgJEbzTBOBCCybDz6iL/7eK1kyhT+X/z0pmvLHh2+hLYIICPEgCY5tRfYb/qChZMgRKE0zuZSuIlpebcfzD06BjKOdIJoICPAgK4pUpBcBarz7coyxS5TcLtsLF3K6LU3DdjQZdo0bUn0ICAAFiJYNc9cZAQOblzvwEGkVuBz8EK3h/uZ3K88JmU8I8CDkYmSjvkbBXqn6KZB0EOUmUQVQr3oowEhh+5lBoDSS+QjwIIAOCoXPSBhLb7Htdel82ff6rRZ9WN3YH3PHuh9n4JmlCPEg+o+B7SYCtdX8pzQGXC4g2QvL0hF1PvfENHCregA0NuUI8QRqv/8e8Ai5bMUoeEusLACD3+MNLvkMjikoaHR0cHM6Ly9maW5uZXkuY2FsZW5kYXIuZXRlcm5pdHl3YWxsLmNvbQ==","chain_anchor":null,"bitcoin_block":969627},"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"]}