{"format":"receipts-proof/1","hash":"50b417212cd0bf679c952eda06a6562d1ba4ac4baf5caac67456eca9528c9108","provider":"demo-rsi-reversion","seq":18,"kind":"signal","issued_at":"2026-09-25T12:15:13.375Z","prev":"b61384c5cb881a66e141acbf8886ce1da89809096ff69a1f046bfb70684fd219","body":{"issued_at":"2026-09-25T12:15:13.375Z","kind":"signal","nonce":"83bd99aea810a89af2ec2144e7c2a807","payload":{"entry":{"type":"market"},"expires_at":"2026-09-26T00:15:13.375Z","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.6209","targets":["1.5835","1.5648"]},"prev":"b61384c5cb881a66e141acbf8886ce1da89809096ff69a1f046bfb70684fd219","provider":"demo-rsi-reversion","seq":18,"v":1},"signer":null,"sig":null,"batch":{"root":"50b417212cd0bf679c952eda06a6562d1ba4ac4baf5caac67456eca9528c9108","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-25T12:16:03.379Z","opentimestamps":"AE9wZW5UaW1lc3RhbXBzAABQcm9vZgC/ieLohOiSlAEIULQXISzQv2eclS7aBqZWLRukrEuvXKrGdFbsqVKMkQj/8AgOT80ozL5XbAjwEICaA3Ouo0LalK3LkegzXY0I8CBjPcE8aFw1/3odJKCftIsLz8O8l4PVlZ3MaaHUGA86AQjwIHlwCc43Zqv3OWNJtGNt5YZvaW/UgCG0FfiDU4qom/1ACPEEarZmBfAIe3fmeJj8XFMI8CBwVS1f+pCjB4u5UFpSP7qYQNUTb2wvaSY6PfVjNwtYBAjxIC3QmN4/FD9SgOlL53Bj6heWg7A1gV6s8VpcJHMGp3aQCPEgIdkHcLn2GTfh6OUXoWe3bPlh4kr6Dsrwessw/dchwPMI8CA4Pfpro3PVabSsohlzvsqRkq6SEDc0+93He9AOsEYp3AjwILOEY8oBQpBVNO2xsmMBcTuyFyUqVEUdLj4oGUNIe/UQCPAg8mE6SbGVCElWS/bAgmV//KySd0ki+upXSoK3QdoWlpgI8CCtlZio589UuB6lYclsQUlMnjZ10GJAdT3j1Qz46oG2VwjxINvt9R8rMNE8CFf4j7ew1fc46QXDjrxaDA/ElYL/aqt7CPEg+vKLB28Df3BWvyw5YyJ1ViyiAkEfJcYy/LkLxFRsLZEI8SDf3Je9zu95lV9MsYpvkYjpFmbr7yVxJ7lXQgE/1hvYowjwILQ/F9yCu0tjjy9tMdlu/pEsazMytXMQDLiUCU5uaRAMCPAgvtxIGd+AWAKoAGWE9Aevs18FdnYepuc/q6RzmXXbDC8I8SAfiMTu3LsTNZTsSBOAx+kxPSC4rYFBfiFhkGYSVrDnmAjxWQEAAAABHpNPBVBxASQwrkl/OZTjEQu5N7mcTLsQg/KB8J+T4i4AAAAAAP7///8CTX8BAAAAAAAWABRmhxzHjPhFH/2bAuCOyXgLT6gxngAAAAAAAAAAImog8ARkxw4ACAjxIKrsibb+RxLdf0vLUI96nFMTB6pChOPWC1hvlLFAbDKyCAjxIC6zIo4jeTqoClWyZJBVt2nkivPW/ktzCNO/qRrGwgqaCAjxIItPueuvOSr2sv//6Effzn87q8nwHEv/Lexnylwz/RLwCAjwIB7vlpdD7z3/R9POvy5uFOV91CyVhYRt6PcncMtrbXVeCAjwIPvfKdXlYysT+oj9gvfPZVwgobcEsbB+1tEDFOVG3I5NCAjxIA+2iHV5V+7PfhDco6IHCrI6SVcccJcyEetkEUvx7BFvCAjxIA2iznpAoCBbf1O+tfdIq4JNJP1kgZh5QnDcnuKUx/IgCAjwIN3O5dK2wRYj2V3K2V4z65/1TNGzwgq9dvQIm4xik8IwCAjwIDH3y6WBbJziLtoIflW8X4rMUzTH8RUcZ3IVU5YaU1AcCAjwIOFUtSBSBjoUvD07dUZr+RUTY+isCUttPD8Dmxy4INF7CAjxIF1tVRm/+0ANjXK7UZrGUMOsS+h2DxEQu7enDv/Fs2G6CAjwIMA8puj9PY5z0K1m3lylDBC3ussR6XLU6AJs/81gqXrVCAgABYiWDXPXGQED5Y47//AIzHNU8QRSkmAI8BAjUX5XPyJFwlvPGDCMuR9TCPAg4BTgLH7OYclyBgzcNYTpq/4K895xYZjEPF+RqR9/W9kI8QRqtmYE8AhndHqY4+m98QjwIGmccAP6C7WAR9OT+my+wPPNVzyoSpXySkuUr0qOU4zHCPAg0LHUOOE0gdtVMZB2KXAD9alg8sD/ycpYjHoGHdLDfxUI8CCp2JlLk1diJ0t28F42qDotL8abCfjf0tRY1Lh7T4f0PQjxIDHB6/Gs/69i5lYkiE3TRHkDVNI26aM4ZzbjGJpvkrJcCPEgiWojjcH5pCsVgCA3PN1Y69vOQbalhJ5WnPb64zkA7bMI8CBq80xCLvSl5Jdh/HwPVPtdRrWzh/ApQR2omCJ09mqJjAjxIAdpWJQ6lVWC4ebUbUibwDnwqY0Gv0GkJSIlQh1oDAxQCPAg1K2v8HTVuL9rh71dXBxoUUoHV9pvTUzw65a4OF/AgKUI8SD2cwXyHf1qINU55kmOGuVb5W58VuhA1N2Bqzl3Nd9NQAjxIPVs9ZnhG60JspgK4wFCg/Ql+cRmOIRmW9q+Kv1e3vHfCPAgiNQIlEntxdB5E8BAIgz/8rTD4ax9V21bokAqYHCh8/wI8CDoKfRP6rUewDOWMFan2EoT+ePRs6MovT4RJ7sqSXHNFQjxIGA7f29bfiOif3Xz26YDUQrYqYbErJON/5kzUHakj0/DCPAgHb+Gm2LQx05MmYzKjsvZUUjRsBesgB/mcAuT4X1q3ooI8VkBAAAAAfoarz4ubgBTQUESOcs4DbxzJRUJbbsuIJ1THnyhDlzqAAAAAAD+////Aps1AAAAAAAAFgAUJkdNiQE5T47sED2GhvvKBOaLpq0AAAAAAAAAACJqIPAEaccOAAgI8CDZz9ib4/K77huB7cEaUT4VB2vK0XuwycGdXW7rppW3WAgI8CCIeLs2fbk3id7LvSFlL6AgC9Men3BNIGmQpKvm2343hAgI8CAfQPRt/eK+gTF+GpQN/EefDkNxodoH+7fxb2FO7IXZsQgI8CBRQRh/iopru4Zz/8kWH78evDtYiD1RlMKlpOVWY9OPxwgI8SB5CbRA+ZKhHMYTynkiP6wUvWN/X4qX+XWcOsu/hCM7rwgI8SDT8BhJKRNMcN0SVcFyusPQzOJNzXaQXDCgi/2B7HF1NwgI8SAwTaoKwt2prcAEPOqiM7DXZ47UY5QLupfl6UwFCRtBmggI8CC4cqlxDuLLMW6sL/pg2r40gKG4xsNDHody1Iw0kz2nrAgI8SB8dNxSeFnYeHkoeNPRj0Mmv2JU48slEuegKBtI9YZGOAgI8SBllVYRsRbXmmI9O9MDWmXRF12R0t2Sr9U3/mQ7LJKF0ggI8CCR12q5uJ3npvO5rRlQ1jb9uBEK86+dmseRsIBvbfy08wgI8CCF25f5JxQvfE5oq319cgSsI5P5pqmVs+DYTE6mLLg1zQgIAAWIlg1z1xkBA+qOO/AQsJmYNDqvTFl0Xs9sxrlFVgjxILXTvWaoqc3vI3yjCC5F6LQ/b4jnrx8hUr2nh1TOPiykCPEEarZmA/AIU+KSPxhn92EAg9/jDS75DI4pKGh0dHBzOi8vZmlubmV5LmNhbGVuZGFyLmV0ZXJuaXR5d2FsbC5jb20=","chain_anchor":null,"bitcoin_block":968549},"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"]}