{"format":"receipts-proof/1","hash":"9d04058b53684f05b8e4743d5f5cc228fff63b288d23734dcbb2ab8b7f6b1346","provider":"demo-ema-cross","seq":82,"kind":"signal","issued_at":"2026-10-05T00:35:14.622Z","prev":"139beb5298fa58eb1cef5a8398b5a0f5bdf2858326279bb1692bf59c00d09c5c","body":{"issued_at":"2026-10-05T00:35:14.622Z","kind":"signal","nonce":"a6dfb4ceeaf6205b03b62ad185c6eac7","payload":{"entry":{"type":"market"},"expires_at":"2026-10-06T00:35:14.622Z","market":{"kind":"perp","symbol":"SOLUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"121.59","targets":["119.61"]},"prev":"139beb5298fa58eb1cef5a8398b5a0f5bdf2858326279bb1692bf59c00d09c5c","provider":"demo-ema-cross","seq":82,"v":1},"signer":null,"sig":null,"batch":{"root":"9d04058b53684f05b8e4743d5f5cc228fff63b288d23734dcbb2ab8b7f6b1346","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-05T00:48:14.265Z","opentimestamps":"AE9wZW5UaW1lc3RhbXBzAABQcm9vZgC/ieLohOiSlAEInQQFi1NoTwW45HQ9X1zCKP/2OyiNI3NNy7Kri39rE0b/8AjeLF290FIWUwjwEOsuwUpkXzhREiwQ+wshpj0I8SBu52pu2kAJ9cegB2UoHU1yQOZZxJjOg+qd2U3WacxnZQjxIGi4qBxTSAO612VbZpCTwpv5XEacAqP4hceCtWAxjLihCPEEasLzz/AIktPfrAW7sjgI8SBcV8xYo7KQbm2jaXJ1aYrKq5e73+WcrWLUpYG34A6S6QjxIGjVm7TwW+Rlu4RfVU3a6zXUkm/6dXyN2UdKSr957qwUCPAgJWwqjkjRK3WOXfP0N1MAhFXDlWEzPaYMj+NHztRR/SwI8CAeURZQ+fQhj39CAKRobPTkhyRAluJDKdD6182cs//EkwjwIP+T1oSRruT/CV5yfrTffTr/w2orn6fARQvnAD7tm5M7CPAglBkd60JcU0KEqkkzqMgg+k08Eb3eaOqP4MQOVG88nw0I8CCzGjODoFOe94dvNP8iSZwQ5FVOPvukuy/5SiUiSsMohQjwIPf29Xq4oVdUeD9pRl7zzDHvd4NZ+jTRXBM+3isyY4DYCPAgSrrTRp388Kfyy2TJGaB7AlrR1vVSO1JDoMi2koX0/VwI8CBqVg7QujYUbAWabUmIQJ+bdkG0bK/GsC3xTwr9dmpArQjwIIRNiLoVamtuQ0DWdWIZtc8YFJyok2hfJCKOPyCnzfl4CPFZAQAAAAGmUOit38jgcMlQrzeFcO8xurRHUADt0sfoQ3G+uRdmRQAAAAAA/v///wK8IgAAAAAAABYAFMBQPGidaz8FXCHV3rzGxRhNUX6PAAAAAAAAAAAiaiDwBMzMDgAICPEgSn9PdwG9+QoV0D6wPovg+s93o9ptt3kMklrhoLJ/29kICPAgwzeVrvns0959HN/GlJHNbaqbKpKMGsIC1ePBSTqOaEIICPAg0EVqMHOC7o743MePcj8OGzz63k2K/kaEaQtMfJinJZcICPAg/TeIrNrp5wS41JD+iCNNghcjdZU2AxZ3m0o2gRHV7JkICPAgm0TERuuFhXxggEyqpPSukg3lYtLDPn4KATi5LZ+t6IIICPEgJnHCEo2KeA5Uo8/YfG2fCzHgUQzCVLFp5FBe56S88OcICPAgky8tMiGlljMouSeNMe6lv47DZFofW4YUy9w8xHa2484ICPEgL6u+yQMvJf/ruwMciBO19llQOWZ+H6emOmy2CtZgrlkICPAg2+iZMoDvT5G7loLH/0QmUDKdrG0gVH7m6/u4CSiWVyIICPEghbVEqi2O6rO03mU+Pqa6D1RTZ6xcfOFQyuEmi4+LzBEICPAg0iOXeoUetp+cyU0a3Z1vNVmN1ThrxEp+jbZnAYn7eJYICPAgGyFLwrsM/ugsL6EyIiYg/uU9y6VmE7cJd1FJwF4GgToICPAgw9e0ie420KCqHkAKZO0F6TEgl6lMVongOwvos04co34ICAAFiJYNc9cZAQPNmTv/8Aia0mFSob+KpAjwEKCG8a2NX9qULrbeC/huS6kI8CC+6EAv6XSa6IlcHNkL9RP8atPh8Dc3O/fe46N/FqHvzAjwIB9cVutGMoJvk0xPB4dhJG+v1FY7rNJQz8PLyQE7t8HoCPAg3b/5IbJPh2rxWnLumOnA3Lva18RgjuOJC6u12OoQiyYI8QRqwvPP8AgRjw/HZPaeyAjxIGDgp9/wcZ24rokwjcf8kdeDzR1Hs1RZNIVqor0dcFH9CPAgTPbmy2Uy2U1WZDQSYIWJgSHM+ysdRqIDV1DI8FS1va0I8CBDHWXHWpbsJDygF5fCvPVdMfLW4OjZ09E1WLRV6sItZgjwILsPkVq/xQL6bGBFkkqGJZR+kxTuiJBNy9kaTB+EtdqDCPEgAb3PrOZNVDoENDP4sVSL24YO+XJ61BkC9QcSl1PwB/0I8SAh5R4JhcjTm01C3+s4+LwdWQFsGiJvBM+P3v7Q0ZfUTAjwIOVIaCWMcSIz3wZAz3Z+yzaZqDJpTyyFC11nC+1c3Rg0CPAgZBC67w32ieQFe0b1jEA+MGEANK3Uf/bKqCbn7dEYVXsI8SDmEpncLYeOQbbVRTRW9w76YCodQY9gSBkcAgHWpZAfLgjwIMXbloo8vhxks3e8P/WJ/vaxhulQhYRF29N5XfWfY+HgCPAgFb3fOXvhSjbXk+yC6QsrTasrtqmVX05OABtvOqgv2+QI8VkBAAAAAUb1ucUxJqGr8aWY+IDT9N/tPIEPIkFK4uA1L/x7me1MAAAAAAD+////Ao7vAAAAAAAAFgAUJifXCnvcuROjZKD6We1rRvzRAmUAAAAAAAAAACJqIPAEzMwOAAgI8SDC5Kru6yA49oWXVo+CCAc6yGV5dTaBzwyzk+U3DZFy5AgI8CC/J1vVmOXFIwAdhaLpJCt6gYWjERE7JEwJ86vSg+Xw0wgI8SBT+s4vTa3S/JT1nWoirlzwpP/l6T0Pm/Q0SJNhO7wxWwgI8CBpp+VdPmqz1bB6pztg9PlAT0AJkBqYOOSCEQ+wbZXdgAgI8CBvUI8JwacrJQtDjAHiyyF+G6LP9Zy3iqcJAHGF0WjQ/AgI8SBlI8hJuAa4jSFoDv/NWjIJwEfvle15cs1P6nw8DXWQYwgI8CAdLh5ouLMvNmE0c6rkLd14Q2MpOQGLqyMqwYLgq6P+4AgI8SCVHwyBTEWw5wTaPjUAqtz13wWvQ/78BJHmaxDLxAVKEwgI8SC/lUu0REx1JtevaL6glkkCMEvblcPc+gX2CRz7WBVNKAgI8SCFtUSqLY7qs7TeZT4+proPVFNnrFx84VDK4SaLj4vMEQgI8CDSI5d6hR62n5zJTRrdnW81WY3VOGvESn6NtmcBift4lggI8CAbIUvCuwz+6CwvoTIiJiD+5T3LpWYTtwl3UUnAXgaBOggI8CDD17SJ7jbQoKoeQApk7QXpMSCXqUxWieA7C+izThyjfggIAAWIlg1z1xkBA82ZO/AQbl1OZusDJC2S7BfEkklDNAjxIPfreXC23ZIXD+dy0Y5aQRXkRVreIvocr0NFBAmoNh+oCPEgvqNXhdpSYBdl5nH5PZEeRB0pQaESWA2N6oa2xj8tBkAI8CCYWVydUpNAMAYSbCFjAQ18B+Pp0HjL3gIBnNXg9wmBKwjxBGrC887wCGRqg81gAXe0AIPf4w0u+QyOKShodHRwczovL2Zpbm5leS5jYWxlbmRhci5ldGVybml0eXdhbGwuY29t","chain_anchor":null,"bitcoin_block":969933},"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"]}