{"format":"receipts-proof/1","hash":"1bc06e0833f3e5b9c9ded97911f9780c6d77ec4f4cbf52ae0ff83bbc648f02d4","provider":"demo-rsi-reversion","seq":160,"kind":"signal","issued_at":"2026-10-20T14:26:40.140Z","prev":"5a295e99a644b9f10cf52bcd5e93d33ae32cb2e1abb83e9c796ed84ddb022d34","body":{"issued_at":"2026-10-20T14:26:40.140Z","kind":"signal","nonce":"aceab22b508ff6a4680999897afa66cc","payload":{"entry":{"type":"market"},"expires_at":"2026-10-21T02:26:40.140Z","market":{"kind":"perp","symbol":"XRPUSDT","venue":"binance-usdm"},"note":"Demo bot: RSI(14) 25/75 reversion, 5m. Mechanical rule, not advice.","side":"short","stop":"1.3378","targets":["1.32","1.3111"]},"prev":"5a295e99a644b9f10cf52bcd5e93d33ae32cb2e1abb83e9c796ed84ddb022d34","provider":"demo-rsi-reversion","seq":160,"v":1},"signer":null,"sig":null,"batch":{"root":"11a1314ea84617550001cc530b3de772edd027b53a6e5da30736cd81a0b38705","index":3,"leaf_count":4,"proof":[{"side":"L","hash":"5a295e99a644b9f10cf52bcd5e93d33ae32cb2e1abb83e9c796ed84ddb022d34"},{"side":"L","hash":"d2faa453cc0f07e74b09a4e43879a7bf33962d148eb3434b3e04c4f23984a075"}],"sealed_at":"2026-10-20T14:43:47.423Z","opentimestamps":"AE9wZW5UaW1lc3RhbXBzAABQcm9vZgC/ieLohOiSlAEIEaExTqhGF1UAAcxTCz3ncu3QJ7U6bl2jBzbNgaCzhwX/8Ai6hJc4bwgJkQjxIKktr7Sq8zRodcBJLmN5k8Rl5Y/eE+R3Dkv1gE4BK7nZCPAQvPBUOgVjZoielYS7+wNmfwjxIK+1tVFZBFXJgyWniB2Wem2sLcAKELv/zRx7sK2h2f6qCPEggeC4BS+2mtDj4Z6COflvVbvl3f9LdZdmZblOav7SjooI8QRq134l8AhXXwIFVkyt6AjwIIBwn09VrDCHAqV00xVslIM3UblmAyv0jkoet+uqb9wCCPEgKjP+9Hoks0AE+bAz2dj29PPtYAf7MOJgfpfHQVSqCmwI8SDnPrwnCUSM0nQNUNuhtR5Cp8eACuHa8QGL432/cTbIfwjxIMdJzNPmV50T/aocbCNApbulRoYDxhNwD/j6qx+2vAMXCPEg6IzMwOA+kXSyCPpuA8Ik/bpOJWFTo8f88Uchdia7VpwI8SBKmCtJH5Vos5CZUAFaUKc2mA5wzpsNNW9X+ViazbdZpAjwINmyAifUkj/sTUdgUcOOSNxopuu31Kjo+vX6DdNSSGmECPAgyaWcpe7TRNmBMZxO6CoREPqBHR4y6ENbvTE5zXUxl3MI8CBRqXqFQ92/UF64GjVY7dIockvAfszGAtQbtiBS6Wc4KgjxILdXpgq+P7g4879puTuVKp11KYKsSjyESN3pf79lNvzDCPAg2wzakfOe2Ci985adjGgFfkxgkKGM6aZsBNdiXwVvoA4I8SDBSDiI7arnmGZTF89otU9qZvXeqQnHonNHjYKdSvP28gjxWQEAAAABNruVlPZepbPs4wwZtBcVht6f5JKpD+fhD+z+Q95hoz0AAAAAAP7///8CAssBAAAAAAAWABQPaO+/2XvprRayH1vBxM7X0KdFIgAAAAAAAAAAImog8AQ31g4ACAjwIPyuipfn3XtLjPeNChviAlxLdkJkRIujL0Iji+pZXEHuCAjwICTYDKphzYKdvgMpsmGnKu1vNXnwdTCBE6htAs1xn9q4CAjwIJnotDNGR/Rw0b0xXJc6KT6OuYPvSde8OiabwfrLHDfSCAjwIEGoevj11JL44ytFU6KUTJoMUvCjaevfdYXTmj4Kzzd9CAjxIPt/Revlo9/T7oqLCBBIl4obhIhiYtdDPWCbn80KfkUrCAjxINq3o6zWBZykXgtSvE04ckZETQNEfcNBLg2GmzozLjvDCAjxIJj9sKz77L2UyPSIUpiMfvJQIvYPkZzdu7LfMkIgPSDPCAjwIJmfKO3agulQs0IgQ5MaXAIMYfcwyHp7Iv8Z+DQYBxVzCAjxIFiLfKjDxach3a2dd/LswvdMMpf3dypFb9WD9tR7RjMXCAjxIBppQJa3f4rDfhx0lZNdzpJou9VSj/r9zNw2SdYpExxCCAjxIDr/x+NuiAd/Yi0v0G52SkWcftZCnA9pMljVPD1RnV75CAjwIEtxz54uuZg+qSxiDY3nmgDqEEBgSSAN0JmHfSDnmVY1CAgABYiWDXPXGQEDuKw7//AIs8jIN2QNtjQI8CAENjNTMadoQsUS/y5coXiVK7APDpw/o4bEnhiWlrot5wjwEHNbEFUEtcCnffeztsKNdSoI8CDkrIqcnlHFXK6Pt+M8RKo+Jy0V0LM7st8qQ/6RZtuOjQjxIOZJTqb6eSm8P/ER6z8NlIW0NfKH6j+yz7dArgLhaHJTCPAgvvOMJCdg5vNmQ3ymmV3Wn1bJbbmuhuowA8wOaIOQAB4I8QRq134l8AhxOIR5MMpg8gjxIC1xVVZaogSffuRh7zLiVYCxM8iGWkjqXTVw5eJUApgjCPAgoHcWoZfNVdqPsUlO2sDV4yMkil5UjnqUV6tDtnsTQH8I8CC1MP9Vxs/PGPBVpMKHo2ge40WB9h+fouANzK0v4YFhvAjxID8Rba4yJlM7YQagR+ZuUzplIESrtZ/h+3k+y7io9DjeCPEgThj5F9zOdCNfhNEtr6RHrYNwY6Lb4jMRbjpdaeL8Io0I8CA2Wv8+7aSUhs+cHfVeo7oc3lv1hycTJvUo1BtY59y7WAjxII06IYsJItQXHZS4NKe8b7zx2Ueyjk2khOXuHjOZjbPFCPEgsjr3mjT4SSTJ0qZmYSEL+UxegMRYL44v/Fi+97/ETwcI8SBbZikIGAWG4178kZ9oo+a1Z5p9j2RRn+dqO3XFHaUSIwjwIKtsIOkJAXxQkAjJv9Pbujyq73dk66qF1jp4QfG1YFoYCPAgVBmULLEB79gpkJr/RPFjgniLiLGkTrhXr9eB/6/yvhwI8SCKZvLRv0DYmFYBTSI9rg3hGM+y9nr/V1z5gpl4mRA/lwjxWQEAAAAB9RpfaOQt06VPN2f87Kwzhebb1NXgmFys4O0ETDdF0SUAAAAAAP7///8CfC4BAAAAAAAWABR2e+ru46UILtuBBRIPO3FfWWHnUAAAAAAAAAAAImog8AQ51g4ACAjwIPpUOKVTeqhZ+LVfm99siTG9KrdNtlj6WyQuv3MrYIhwCAjwIEtBnjAlp6LQvvKaiQX79Ao0nmOok90YcH8dsM84YQXbCAjxIAtSmQ2vpAgQHuZxqfrZpLmwYiwewjCFw3mQW42hMHAXCAjwIDxNVz25z0lNoMrUruhY+ps6QoUBhO+XYxQlApz3WXO9CAjxILeiRGptvPuyCUPF4B16TQy1c+coVkZqvxvhX2HfM9xeCAjxIJb77cDwJoIKwQA52MyhaMrH4A9XJ0ELAq+5IUdWXexKCAjwINBgmAfuNLggDsqBp3aKrTY9zOz1oWeuFYmHDWznSf1cCAjxIMisYpJWZeWxR1Q2bdVAaEc+qqBlEtdWQ6nEwfraKH6wCAjwIAjy64u0LYTdglg1ihCpSyqEl7DQjMuZX9BGjpRn9K8aCAjxIM8HQm3vmnTniakQAS04y6VocPfJILdQKt3FGQRQdEdlCAjxIJygxxEZmFX3NkIUCY7gSyo11wMKyxR5Undl7wjJK5mmCAjwIIGgeL/tHUO/1oSS+AKSekRnEkjfuV+Iu2/S335rhKepCAjwIL8eXGFh541h1XRb6L2Kf35KQ4Sf9hc92OofgT+kr59YCAgABYiWDXPXGQEDuqw78BDEWEtwHvo7ggiGCDezGM7LCPAghmO7LZp0aFzJtEh+tDwlNItPOukn05cWDL7L4smJxlII8CCJUIcMw0wGxq6xOxBNb3Fwng86IVPY+IdjE3mX6CxMXgjxIE5+o7Wz+MlAWxHx3s2SirmNX3UzqEFBpwhosD8J5Ce3CPAgVu5x+B+c0ziLG3udcArJf4rxeVmYAtdReEJRW5umszsI8QRq134l8AguPun1Lnc62gCD3+MNLvkMjikoaHR0cHM6Ly9maW5uZXkuY2FsZW5kYXIuZXRlcm5pdHl3YWxsLmNvbQ==","chain_anchor":null,"bitcoin_block":972344},"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"]}