{"format":"receipts-proof/1","hash":"949d82fac90809c6272e4275f0a0754bf1f8247acd10845fa32853490f5fe607","provider":"demo-ema-cross","seq":11,"kind":"signal","issued_at":"2026-09-24T08:36:23.221Z","prev":"125921d51fa9ba39dfa23fa03edce4869af45ac5b4ccbc23c41976b02a4295fe","body":{"issued_at":"2026-09-24T08:36:23.221Z","kind":"signal","nonce":"d493c41df5d9b170db8ac8f399deb6a6","payload":{"entry":{"type":"market"},"expires_at":"2026-09-25T08:36:23.221Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo strategy: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"114.98","targets":["112.85"]},"prev":"125921d51fa9ba39dfa23fa03edce4869af45ac5b4ccbc23c41976b02a4295fe","provider":"demo-ema-cross","seq":11,"v":1},"signer":null,"sig":null,"batch":{"root":"949d82fac90809c6272e4275f0a0754bf1f8247acd10845fa32853490f5fe607","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-24T08:37:22.244Z","opentimestamps":"AE9wZW5UaW1lc3RhbXBzAABQcm9vZgC/ieLohOiSlAEIlJ2C+skICcYnLkJ18KB1S/H4JHrNEIRfoyhTSQ9f5gf/8AjiNahuHoN/NAjwIJw5iJOGeG1iMc5HD8lYaIDig9dfqtTrl7q01BZlLb6mCPAQSTXW1rmzHK5cXjuwx1YkIQjwIPTBbITa68dFUyqch/rZaJogzwfcusSdQRlIeOaY36QMCPEgLCxFdPjKF4X4eswJkLK71iiO6RmK92rjyyfBo2VhhrYI8CAkHy0g0J+P3uL5q2RboDXLpyLIyHXNBOQbiA0srPPgKQjxBGq04UPwCKVfnrW9K67KCPEgGZwTTwKf1QoNPFMfHRVRtCej584zF/QK6M6KL4V77wEI8CC0nSkrrJjK2HMrW0nU2YFdmBN70EMzgHo4ciOsO0XWrgjwIEcJqMC7vmrXTW/XRk6YQDBhPZ56agCfJ9M+BrjlcbIpCPEgdcUa99k/i2i8lnBkv5wVYdEzrek/NPck3kmnz6VclvUI8CDVsgwT9Fa3By+WeX2vhqFMaKNq3aSjZjsZ5ddHZpd0KAjxIPMXNmC8dHKvIyze8ESDI2l6g8sBjp/YYiiqQnLwN1wNCPAg8ktuaUatBmQr3a3GKWW1cMpNhGM11zEvyJx0dEqNZocI8SBedhw0REcn0QUU2Gikhw97J3wKclCJ726zkRQHBU/CcAjwIO77RWXqAjFY3q2MGCrHouAVTtdbS/x4hl+lWKffZi3gCPAgHf1zL1t5aGLF/lRMy7cIAoUDaGl/YpTq3ZrvX9uo3qII8CCYcjPjizp1Ls/9ViIbNEOOc8p0J29yyLlSRn3ROS0MYQjxWQEAAAABe8FYrvsjUDNCKFcCsFIivSN/g+Qou+7Hs/zNP4wogTEAAAAAAP7///8CW54BAAAAAAAWABSVfJiki1i7l5hW/+6PBToWNBOpPAAAAAAAAAAAImog8AS3xg4ACAjwIBcW1tN+D40m10wrHcxKeN2zvUgssWU0p2NmF3RS7gPVCAjxINI3VOpFC1ytobq8RlTqqJzae1Pm1DNdXdX9VRJF6U24CAjxIIW835HOdcKgvF5PQEKog90ELf1VdglQ0jQoZ1550kg0CAjxIP9PG4/D3CfMuxhXSYT320GndOav9zuRln0M4BpG3bg2CAjxIG5fWGyKah1hpqb1kWSgyfvIKOw83ubhNCvGUQXe1cq0CAjwINVDdFuWDLz+D1iiEGMN2M5L96OZtXUChyyl6UjBuQZYCAjwIIZjuoPlw60rmSvyt5paaPM/h7kIb4eN39L72GVdKph0CAjxILKEvUEjq2wGrDlLTeMqZxjo98iv3OoPbF1CDfWUAMpxCAjxIIutK5HF5JB5HR8KiXd24lra8sjhHn+6rcT9EE87WS/WCAjwIEFaZiulw56ySns1wsU06/27fkxONj3diJioFtKNA3R6CAjwIGByjTYkUKZc0UJ9SEavbt4h/HhMlMi1BS0vdHoXRnCOCAjwIIJdfK5UgQfra2pkGEvrEEc5tOBSGCBUsUxbfAvNVC57CAjwIBgrJAgQxI581y5ue97VeBK1ymTvpkNiwvDKd8gM6KUtCAgABYiWDXPXGQEDuI07//AI/1SDDPLuLR4I8SCXaT0vXgKVsgmC6ACQpt+/hpYagphPg4imVkjTY0H1QAjwEGd/l2/DyrgomGoJL086/B0I8SDw+vSss+UKDih2qwS9CI7Yh7uExsO59UsYahSsldEhYwjwIKIVevAttHzaBFbGReH8FEJZpM5ES90DFDKfa3xFNYt1CPEEarThQ/AIPpwjgZJ3+LkI8SD+LsC/rwxGCNFKSC2+9nSB3ZDFeCgOD6N2TdBy2oUrKwjwIFmJ6gkDiq2LNhue2S2XImBaXEigsyrKd1lwNtKEkPDSCPAg64sbQVddh5k4A3eqV68V+aa4gVztwyaNBaKqtJv/WMYI8SBfuCVUb5kmqS9ypOL1u9OYsyfYJPQkTI2XaGb3L90arQjwIF/i6msWMWQXJ89GHjs0mDK3xX15IiesvaNU5qalQjayCPAg6rmMOb3vDDk4DrtCO02KQzvDlK9b/qze/TN9mTAhh+kI8SA1HqtN88g6wZC/6kNOWhhHCgYaXW7e8Anqjaiuuh22vAjwILXfPQhkRtL8T4uzZggjrhDLQW3HAsZuFUbdTGLhsFmcCPAg55Cx8xWCMvrQob3KcQxMGLhptOSvu/joyNITvNQpBe8I8CCPpoRPWHz8Tziy4DebmP88V1MWz8ynXIk3YLr9kExEDAjwIMwvp2tCUMqN/P02PMlTIWllqndkGSAltq3kETZsaz6/CPAgfdS0gKkm7NMw4uIcXFhmcwTDKRpCF4wbHNM8xhIiPFMI8VkBAAAAAXIB0G5XMefQuZ6bzaT1vvF7iSutIc6dq3QqlcOI79vgAAAAAAD+////AvQ5AAAAAAAAFgAUpf7Rpp7JcMwVTbPkLnTl8jf3jg4AAAAAAAAAACJqIPAEusYOAAgI8CCLJwV0KOyHXgEUzj3YVsszJn7qCCj4UiZwqVxOa18SvggI8CA0wasM/JuT6gw3rafaexxHlgwujxUNpCEa0IVmQvMQqwgI8SBRXZebKoTKwgytW/47S85VP1J2JUiCpX8u9BqtT9JC8ggI8SBiwt1YAZWeEtDFwwzJ6/tXCYm+IzN+XdJaI/zMHcxb0wgI8CBPhEOdTGzp8ksHItAbP4AmxBVAwE07zn57AOMV7KO/hggI8CCluE3oHiLg8/94KoK/Hsy46MXvTQHlqn1ywvEIfGZsTwgI8CD/BbKCRR58KCwt+rEOIrRDmZmdb5Mh+bCM4+Q9nOaJeQgI8CD19wTlj1271hxu8clLVa58fFs++sB+qRg7lMoJ/knWVAgI8SA6A7TR019geum5VmterFBnBah+H9an4nnETMjhbzBGRAgI8SB2wYSS+JD8FxSVmVfIIHVcv3KJej8SP0n9IfJBLflFjQgI8SBRFLOIjqoea/cH7jeyfwHAxbwdutVEt7tUfdUEDWViuggI8CCfJ+FX0JX7f2nyDJIA6N2EJgaYhE8uv2CsjG9SIs065QgI8CB2jh+XnYGgc1tPGhFFLWP1Y4KmekLT98VUwfH/ETsojwgIAAWIlg1z1xkBA7uNO/AQ+U/E2qmmT6oC8Ma4KYFmXQjwICAKv36p7mr/Hw+T70+v2kvHKKUnk3sFto1hxMu87HohCPEg0EO7y56cHJL76dIIjuTSVwnICHHtHhwjkDv4OOYw+Z0I8CA7Ou/JXQM98PDOLyi/Dj/f87CRwvLr5c82rI6urX9t+gjxIHKonyaGtkEeMxasygrtSGE2QbvyDBEKPwQuiKPnHsFdCPEEarThQvAIMtMme5vPSfMI8CDbisgJs8pFIKG0MtKT75rrqp8qny2c1/DDHYHGWNqRFQjxIC/sHLsy22sPReUdMW30yhdl2BeWHhLhzdobeLCt4lZGCPAgNzOObQqpip+XIWnV0nK0N7SJZUCCbLuBYQo0ydziTgUI8SAclnjZH8CAT6VmqoPrF6GvBCuhfyJl69hO5/+/XuiGJQjxIONQD3Um9I8hKGygtPEhOZKO5/Bmo5aJWz3es7A10iJ3CPAg2QHKEgz91r/ux5QLyq/26qys1lNjWFCf5CK9O8TWXboI8SDmHtWHRBRiSKWHI1eoMfwu4osuVB4OC8bd60H5ZzEVgQjwIDy/xUhwo2Vrv5u94xB5PvYQ8Mu0uFjC3biWnDudSqyECPAg0vhuiF1OJsYCeRRhqrvrNGinjhL5jDxajkEHT8DCD+EI8CCqlU8NoBuPpGtYLuDxCqCpzzrlCZbKaLROGYoeLFOycQjxIDfJpkitSNPmtpf7Zv2a0eFbFxPS0HBCNSZXVpxXhoziCPAg9i5iK/kEzUEcW67BfaF1PfxzgyXrYVXMM0BMYNyQfJcI8SB9G6swQuWlJsReHeifEtnZuTJOwwqScbV6b2byTTU3GwjxIE0Wd2NC7VJXaVKw1TQ6hPK3sa7v7zE2XaXGsKDHoR7/CPEgicASkjCixOY7HHxaLI+kx1miKkFX/9UhRtY3qsWubA0I8VkBAAAAASyS3HFg8O9WFi3XWlZdtMBJrYAgbAHur6D428NCWMEIAAAAAAD+////AgwtAgAAAAAAFgAU3Q/z/t9CkVP+L5/DDPizpSiWPaAAAAAAAAAAACJqIPAEt8YOAAgI8SCp8Nb3seQ0HLrV8o1lBV8CmtaSt/SjWZg/z/rkUjBZswgI8CC0e+ax/UoRsmtCJgLq66NkhRCBcQwj1RgCqGL/xD2tTggI8CAt84uG73XgX/6a7QZraKw5F4eL+h/dpVqY6SNf/puWCwgI8SDgIHKsQbgKXUbd8ImBcREy/fUtXRPihcFBE2U/RU5wTAgI8SBsFutnuBYAh+NjCVFJheCALaDkzHMZsG2xBiHaErw13wgI8CC76qZbGY8EagIvMDiTBPE6I58xQVzzJzl6fn+HNccrKwgI8SCq9UGg8Vox6Vomnhz6de17H3/Q75JL23p6LkchmgW9AwgI8CC7ru7T0HGtM1xhPJqJwlAXMPF+NFtTEhj2WRnDEQ8D3wgI8CCQsE9RAxohJWlMv1yUjyu3GFsUAfKkvEb6Emd1tXZO7wgI8SBFhtIeck3lnOm/LD5cs4hYhOkOwWUSS0a0cPliIlfKSAgI8SB+sf1z1X0Qq41UqzUDC22bqw5wW0Fe2m6j55R1bysjxQgI8CCCXXyuVIEH62tqZBhL6xBHObTgUhggVLFMW3wLzVQuewgI8CAYKyQIEMSOfNcubnve1XgStcpk76ZDYsLwynfIDOilLQgIAAWIlg1z1xkBA7iNOw==","chain_anchor":null,"bitcoin_block":968376},"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"]}