{"format":"receipts-proof/1","hash":"b27f6a899ea24fef84fb2df5d6758ccb384ec00041268afb00f247d69abf2dda","provider":"demo-ema-cross","seq":35,"kind":"signal","issued_at":"2026-09-27T15:00:39.430Z","prev":"359bd9ddf6344b118dde1b79c4fe46e7188d35ab3006c5c9aff4e18e966ad593","body":{"issued_at":"2026-09-27T15:00:39.430Z","kind":"signal","nonce":"b753f2408df29fa5b876927c72e24b98","payload":{"entry":{"type":"market"},"expires_at":"2026-09-28T15:00:39.430Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"84789.5","targets":["83884.9"]},"prev":"359bd9ddf6344b118dde1b79c4fe46e7188d35ab3006c5c9aff4e18e966ad593","provider":"demo-ema-cross","seq":35,"v":1},"signer":null,"sig":null,"batch":{"root":"b27f6a899ea24fef84fb2df5d6758ccb384ec00041268afb00f247d69abf2dda","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-27T15:01:39.455Z","opentimestamps":"AE9wZW5UaW1lc3RhbXBzAABQcm9vZgC/ieLohOiSlAEIsn9qiZ6iT++E+y311nWMyzhOwABBJor7APJH1pq/Ldr/8AjO3A8QNTYCXAjwEHD65kWvfvTmE9j2peocRNII8SCJCrI9zWXutj/cVVs5pfT0LfEULa/DCvKytq7MCc4uqwjxBGq5L9TwCO1r8u2GkFk8CPAgZAjcwNKuIjg/GkXyyKGyvDBWarejsRgZhNrql7/vAKgI8SCu2ifZ4mrkhw/iac9jiX5qENJDxgDNeCwU6ZhptZ4A3wjxIJJef8Y38ajz4u9Cznos33e4HgYkumaQ15fKowASD1GSCPAghXfwXvpd0/pgiJjkQumZAG7Yj8zRjZUNleZpEBAVpJcI8CD6Pt3dfjBGSanVGdBxa4zQld+TxfhhaU91G6lp3gP9dQjwIEFnbHeeZLsswb+fpY7b6ysMEvV2ejvH3nWGz0GffOEuCPEgp7M219mj2fPN523E913F9UCU3LnNCDXpjo+BoOWABb0I8SBW0qY9EGojEsxtIqIDgpDnGWoQ67cGqmwXshv3WLKZxwjxIDdqlwcGGPHTeVL2GGBj+j+UkOL3dt+2zZXSs8R8KMYlCPEgSXZ5/lJ9Ep3d9jP9VpM1sTGgaxg4cClWJ9G3qv9Mu1gI8SA87ORF9MvJwFQi30kUPJTejaxH5fexic1QqlJW2HHVpwjwIDfcLJvcqhFhMIIk5z7XSRh/wF3InRDUkIbM22tyEDwbCPFZAQAAAAEc5jgNbcZJc5LcpjzsAPLTT4pkqxjJhGD4WHWj2vjJVwAAAAAA/v///wIGSAEAAAAAABYAFPL7NJmM8ilZkdCEnko9VDK5UPIYAAAAAAAAAAAiaiDwBJTIDgAICPAg9ZiUdaY092fG1MzoUPolFmSJoq/RRj9avhg0XICW7c8ICPAg7cvvx89LeCAloXKRjNKpCVCVYu3b/IvYUdmpMfg77kkICPEg4YqwobxbHBkGSbq5OQARITaDNsStpRx4Pl8qtWVewzIICPEg7JvnrGZdA1BZuL69eLUALY+8QxnmtZGM11cVVX1Df6UICPAgu2Cu7btk9qla95afeAtGnOZJ638tRbMRLLXDV4mCK04ICPEgd8r0jgo153Kn89O33tosOJowukmU7TtRRNTTObB5lNUICPEguX5eYlHoDsQ31qXigh7c+GQBt6x7GotdwIiTtPT31LcICPEg6nZkstRGeKJ4las9Nflj2wHafrgMaXyHmTGAiuoSOtEICPEglmZyEB4CfoGcYCwrN2rw11WTgk0NmaxFjgYWUdXqXT4ICPAgvoDX81QEzzjgX0RLIW4fEhwJLpiNTnxQDkxuGk+lwSoICPAgaCqh1pQE8hghfqobiAIXF4I8laYVTs7C1DwtODMKF7YICPEgmAzsNzLTPEyJvo19l5OwIr+KTMrdlABi3MXnuiQ9dkQICAAFiJYNc9cZAQOVkTv/8Aj8zFYfsdCmiAjwEIjvE1sjpg1z8juBgtkwNmwI8SCnhBx9KJeqme/qaNVS1iK07tnbdRNKTGQlbnVywZR+NAjxIFgAZ7lW/My2Cvu7f0Pjf33ouk3X/1DZI1PAwQUZRynqCPEEarkv1PAIE/YcWzUxih8I8SD54dZ819OoIQj3qs8HHZuxlIBymt+VxWwCTiBoDe5mLgjwIA7ROhukuR11ckHr7p76lKsSJtILjkUkACSoAb1BiFC/CPAgTwoZLrQaQZsgNyiLBoS+MT+S2Bg7oguads6+Nz2zSaUI8SAb7PKkoF0cZic/WvAWUPsaROsrQqD076W5SLDayRBYngjxIONSSVKxE20jZR7nuj9klsdhYEPWF/baY2q83paYcZY0CPEgAuDkH/7oEHAeg/xtr2ODBbbcV7TEoz9DhSS1ghlYwYgI8CB+YMpYprKhWPvSTnL0/q2Lhx5wgI/gQCvvEEu+zZSUoQjwIDCJKRwZebTxkSGTwztUrFSqIhv28Qyx8htJe/e5XQQeCPEgCxVj33tO+MkYQgA42ilwr5vvESKytWqgxFCOGpHtT3kI8SDDtQuiuX5TyX6b8uA0ZR8XoV7Vnb95Ahiq8cWsqi3fAgjwIHlsBpSIy4RcRsd7B/8tH56Vm+8ELfLT7AIF89ZdHUIUCPEgXVV3uLh7iuYCOhCPUnGq0VZNaZ59C2WeM9V08KeNIPoI8CABncITfXgI1M3rjphza5x8A0h9kbN5ywdVmQaGwPf0CgjxWQEAAAAB+y+UWjPFBV9A4/Q5GaCiO+zHFbiEizOXb3BBnpwaqacAAAAAAP7///8CEjIAAAAAAAAWABQoO78bm0YoSVDn53Np1Sc8NEBVSAAAAAAAAAAAImog8ASWyA4ACAjwII4D2QhQv3eDPwZ9EpaKH3Ck0stU0O+pQ1NqepoW7uivCAjwICt9LiAn1PrksZ7vLyhE+3ADvntrahLl3MEjWuQPAfWtCAjxIPlePs6i0rbGHENMyTDSou7X5q3xofpedOvmUeHAE3ZyCAjwIAssa7XFz5LetszckF5+iBddwqWIMnNrCPlZv7nC/u+tCAjwIA9O5cbBSeUWIHcN4v9j4jhWMA4JGrURrKhM3e4vSA1GCAjxICXKFzMOgsEE58ZXj9XwVop+feYr8eakHAvi3eJw/S4bCAjxICiz1ooJIY8sEOxUtBhUdarLIzlLdfSYDMGCO02JB1v4CAjwIOoyPWLrIpZOsumEfEQE1JpsSVLGI2onGNBzVT3HAXXtCAjxIC4rNjEJISYN0BT/CaC078j+Ferr79OGRdtYBJDEj9GyCAjwIHeyjE+erLznAIf+Pmq5MwCJDWDaSELmxt6j/2CYdkPPCAjwICZqWfBGVWJmbCFYnJFMGzwkil241K2sWtAjgVpXzbdtCAjxICDNvIdd1D0vIs040Lg10aB10XG+FXwn5nudbF3cFCT6CAjwIGkFFj5SKmuJnw9uYsnFLOF8PRSoSTvkluT3ej7rD5c3CAgABYiWDXPXGQEDl5E78BAjx7z87GXQmlfKqyf8+9iVCPAgnTNaOOLI0kRZ2NWCvLN0u4g8Z4bylNNP0f0O4elJLGUI8CDSNuuLCeRl/Hf9dem2CjOo29uac0PdLV/TEB7Iix+jeAjxIJfsz720Bl+oBEvE/fSBrDLSuvrCTzJzalcU4z2QN/scCPEEarkv1PAIqp4bLaxoNq4Ag9/jDS75DI4pKGh0dHBzOi8vZmlubmV5LmNhbGVuZGFyLmV0ZXJuaXR5d2FsbC5jb20=","chain_anchor":null,"bitcoin_block":968853},"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"]}