{"format":"receipts-proof/1","hash":"22c64f7d9a5955c37a1e52a695b932e1e7803a0e334aba09287716a06c112d85","provider":"demo-ema-cross","seq":4,"kind":"signal","issued_at":"2026-09-23T22:17:39.368Z","prev":"0c06d57e995ec867090efa73caf926576dc5b85192caaf4bc13cc583b6619bea","body":{"issued_at":"2026-09-23T22:17:39.368Z","kind":"signal","nonce":"3b8d36e3d9423eb677c2d657d232c517","payload":{"entry":{"type":"market"},"expires_at":"2026-09-24T22:17:39.368Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo strategy: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"long","stop":"84297.6","targets":["85064.9"]},"prev":"0c06d57e995ec867090efa73caf926576dc5b85192caaf4bc13cc583b6619bea","provider":"demo-ema-cross","seq":4,"v":1},"signer":null,"sig":null,"batch":{"root":"a25df2cbc01c244757eec798e88b46b6b1372e38dce34d191b705014d040055a","index":0,"leaf_count":2,"proof":[{"side":"R","hash":"4af5a3f785fa7c89c204ae825ec9a51f21c2e9e55afccd428095f4a1a5150239"}],"sealed_at":"2026-09-23T22:18:29.681Z","opentimestamps":"AE9wZW5UaW1lc3RhbXBzAABQcm9vZgC/ieLohOiSlAEIol3yy8AcJEdX7seY6ItGtrE3Ljjc400ZG3BQFNBABVr/8AiHN2DMOFFhBAjwIDfiaxA0pB2Q1in0iKNXnrlwmLXDdpAhMKnr5jQMX7lPCPAg4M0Th3Bo2AhTi3+l1HuSc3wXBSpXRUnVxoqChy0ZKR8I8BCbIQpMG+VxbZ3+a98V5b0gCPAgFkXh8XcL4Itiz4lPfJ4I0H7avSidAFf7eQla37hW3M0I8CBnWx1RwF3wxYU87mSRJCubqNZP06a4ony223YtqHo0OQjwIE0z2IE9Hm2/uMz74IzqKKU8FfCO1bY3Af0U5r0LdEJ2CPEEarRQN/AIjdqCRvMiVwAI8CDsggc5Pt72P6TI4vsZN4LIRveDl5iFCWEKECWbPaAeZwjxIG3UGgbdgDPe8bzdCBBARXiaqME+P7Vt+aDsK7TEKxcaCPEgIS02PDBkPy4J5V0q+6eWUhR4wduNWxsBlieS3zOB5joI8CBhGX15ozJSEgnLUAAoOFKE3JpooB0hEOyBlxEI7j9hPQjwIHpGcZDEqVXcBBLisXzr6gEVdh5JRfW1WJn7dZhyLdAACPEgMTYzFeD4FyfOZxA2F3Td+C51v3RurntiummAmx/W9LwI8CCA95BBobXR1bs5fMPJbJvzvxYAbzdx6pQNENXBATRHNQjwIFQKXtbvlqHXxGh//2a4hWx4FioyfxwlE83MDQgUQdDVCPAgd5u6Wazmt5cneqShLkmeABJeLwY/Oh/Yux9OclAkxtgI8CDSkAU0mqjH/rAe1ATdms+y3tJ03+4SuWbzsnUrTnnY2gjxIPTCKbIZ3jykzHHglY6NVvTs2S4wEKrSk8D40shwYAbXCPEgRyv6kQzvtLVi19sVLhr4DHjTYwafzDOGD3ZaMLxB5kgI8CDEuwGsmtzrb//ljlf6sna5avWVpfTwqUkw+nsa+xfoVgjxWQEAAAABGdWsDvXWODfkvMFyK3sICOSfu9QhrJwLuJNhojwH4G0AAAAAAP7///8CDacBAAAAAAAWABSlGBRbGkFJMPXjkOi6BFjDK6up0wAAAAAAAAAAImog8ASHxg4ACAjwIEolSDCwZ+7zw01+U6vfMIQ3Dp2gNP55iW5+uepGyH0gCAjwIBrE43Ruu/ZAW2XRPPJ1oR2mga2FkPJZlW/cp/v5wq8TCAjwIHf7tuFCpY5KYBZdck42ncfcTQkmLzr/1u/S0JB3Uz6NCAjwIDYjXjU9BPpIExz+R7eCTw6TZSWL4agtk5v28XgUnTHCCAjwINhS6pqnxr3jIAtt1sz9eXQXaHAraWFE0/bVriK+pLXBCAjwIOEcfvuX8waf5OOUvZaCuTzhMOkUdk3Y+CPHs91vrezTCAjwIO0bd5YIv5KTPBm0TN+T93YfBM0Dh7Eg9r27EFrmBIbpCAjwIGRM2IoJhrPAZdqunT9h37y4e2et1kxizJfNauBck5p3CAjwIAlAEKzUNBnEfwHeEl3pQbf4uceSaEhNUx2TeIb5AnpiCAjxIIYwTrrEAMmPjmXYMnPJI3lmX5mKuGFxR4k01pEzkm6ZCAjxIAc4W7fxF54HP9NzAkXTgGq6NAmG2LlHKqgiFWZS+k4ECAjwIFj6KXvEK1a6g/00TL2gex7FkQcAFxNF+/mH8yGZG+MaCAgABYiWDXPXGQEDiI07//AIRDanl0XRMAoI8BCtwjkYc/GkJEyt+/gdaB8jCPEgCUifVp5HApaMXrOhE8m53McEKlIxEbcMi7GdrbQ1xGQI8QRqtFA28AhjSnBIV/avjACD3+MNLvkMjiwraHR0cHM6Ly9ib2IuYnRjLmNhbGVuZGFyLm9wZW50aW1lc3RhbXBzLm9yZ/AQA/fkiNWMEGe6lURMZYN5ZQjxIIVjv/2J8xBw2h0qA0xFnbDx8A279oeXZe7FLB2g5VzECPEEarRQNvAIMYuvP9iBtO4Ag9/jDS75DI4pKGh0dHBzOi8vZmlubmV5LmNhbGVuZGFyLmV0ZXJuaXR5d2FsbC5jb20=","chain_anchor":null,"bitcoin_block":968328},"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"]}