{"format":"receipts-proof/1","hash":"a1df7b49dbb1278804fdd884c4a641c34c42c6b0497e4af79267cf63643c29cc","provider":"demo-macd-momentum","seq":81,"kind":"signal","issued_at":"2026-10-13T22:05:18.551Z","prev":"8a4dc171e6aab3eaeb4eac24b7f783ca74feb54e7eb5f145446c4e2c9f083461","body":{"issued_at":"2026-10-13T22:05:18.551Z","kind":"signal","nonce":"79bf9712ec8992546e665362e65fd154","payload":{"entry":{"type":"market"},"expires_at":"2026-10-14T10:05:18.551Z","market":{"kind":"perp","symbol":"ETHUSDT","venue":"binance-usdm"},"note":"Demo bot: MACD cross with EMA(100) trend filter, 5m. Mechanical rule, not advice.","side":"short","stop":"2510.93","targets":["2502.87","2496.83"]},"prev":"8a4dc171e6aab3eaeb4eac24b7f783ca74feb54e7eb5f145446c4e2c9f083461","provider":"demo-macd-momentum","seq":81,"v":1},"signer":null,"sig":null,"batch":{"root":"a1df7b49dbb1278804fdd884c4a641c34c42c6b0497e4af79267cf63643c29cc","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-13T22:05:24.253Z","opentimestamps":"AE9wZW5UaW1lc3RhbXBzAABQcm9vZgC/ieLohOiSlAEIod97SduxJ4gE/diExKZBw0xCxrBJfkr3kmfPY2Q8Kcz/8AgOEk/5jXURUAjwEPMhCbjvwWEAHPVHWwZunm8I8SBKnCQI3p9zIPYPGGYhqNXBF4QIBcTA7irVy0Krwb38dwjxIEPj7cqLij95EJQBn4L7iiPEOSIvrfMLToar61DdYC/dCPEEas6rJfAI2A36xLQnlBQI8SAgVucnJvD+MlswT022CVqIhRJeKfTJCWRTO5lc5gw+5wjxIN4R1deVdj7zd4ygiMpcxNeQFU8EHqrvHw8hL57wNuC4CPAg5zzb15RmQ/1WskpKY1PguV9gJfMvWiAb/KD4+oYRqvEI8CBnng3+CSPZlGWRX9YxxaU8Y1wJAgvN7Te7AvBYcBzHzQjxIA1o/2TIriSbfw+se/TCqw3sQp1F8oWvdeG9NtcxJPxoCPEg0fOs7XEHSdiR6z/0snTKfns4ANDbrt8H2PVOZk1hjz4I8CCO2it/BhMOD7sC52FIG1SAQO1k3pADH7aFFVwuVN9rOQjwIEh9h+OBIEgrKNC58a4Orl7R048HPFZ3KwviHPUIZrJaCPAgvFRe14RSRr8zMDjWUtFX0xCOLTuvf5A9fKqcSh+tVPAI8SBY/DZqRBhZ9/cvasAQbWx9QQKpeq7YFDrAUbi3iUYHSwjxILy9X5Ku9+0LxINZSEsDxYVMuo1V/2eUK0LDZBUCrjqQCPAgxepJrPcbO0LQNIcyKvDfpIotY6YqLMlJ+yEYyYuG/wwI8VkBAAAAAcqongHN3NaIUdrVXNYDJ36xwgk5Ao811+kg+4FfrMCuAAAAAAD+////AtwWAAAAAAAAFgAUsOa6y8sCpTVj1tcIIorrPZMFjoUAAAAAAAAAACJqIPAEMtIOAAgI8CAZ4QqaYdH/nbrGAY/ncO/v5Pw/gwym4NREU2rb1Dz2AAgI8CCklyPrx6aaDvc19doxs/G/xZySGGH6pdg5rWcrtNQMBggI8CDm7y8HZeXnj72lztqfgNVZkAk0W2GKY+bKYPuWeXuWbwgI8SC6qMF4RR4afXajfp067yuxSgSCZY+7bG8jI9u6DLULgggI8CCLtZ/J5vta9tsAwvxm90jpbOFLHgxw/7UmLWfjvY/7fggI8CCVgscSS+MZwstk3ettNuKjVcI7t9w5rck3UjULbpjdKQgI8SBo8YdpHmdODXsyRnIEux9xREXlWIoG9qUs1Xzw4SKM1ggI8CCpP3lLcVXDK/yZJPurF4yAfnwMaA83LrsnqK7cvT7WmAgI8SBWXj8N8MKuTbrdVP1y432EBnnVXtzFcqVOSlFeQFWw6wgI8SADQeeB2yam5x2ZFgN/WcjGTQsBpKdRZEh4kquDg33fMwgI8SBd8YgZ3aPpXHJ7Ic7rz++aoiwgzWI8ZgssgTuYYXQQGQgI8SDY2Dqo5tr+pGytRZEQa/sXrpr/uvtDpgPjs4toYJFj6AgIAAWIlg1z1xkBA7OkO//wCM5CYRqhNY/+CPAgY2/pVZHKwt5PLQqcWaTpRjc2fzyhdygUqB/GztbaiRAI8BA325L6117Qg+kfATGp2UZUCPEgNqUAht0gzFLOAyTpi0JKpbKypG/6KnmCgdC9Mq4FLXgI8CDgTBQkPak1BXpQvU2tIBk5hcWrOrwHprnzWNFwRhjqJQjxBGrOqyXwCFgpw4PJ0HzDCPAgLxAF7dYKxTKgUnGBL1SROuiBWZuMURPUwkLnPHQwum8I8CCaG688TTMb8irY20SstkDkg/dJOY+hvbZZT3MOsyMSgAjxIKQp52lACxnhs/1pra8n4F5AhNX4ObiUPYMrzS0CBreICPAge4VSfo+WwHOngkj2THxFn4PZPd9CZ8L7eta7+ce2hzsI8CD9wiR5ms1VL1piZtVw3NC4zdOqRq3vW+sD46T2niepkAjwIB2cXNSn6C6s4/EBvHGWZMEUE0asx6hgMPXJU3J6IWAGCPAga+QDo53znZQxm6Ze7Ou9an/+asmMGo7vpWYgaIdh/9kI8SBTlOBtqbQXPM7uQJCGh2f3vdH1q6eBpiOc1AgMhojrigjxICi1x35IEAz6JGxC2z9HMADdNAc9B80w6pxFGvDu+iCACPEgktwPecmhXNBf6O+uFbyXL4gFOeLdZ1FML6W2kaMYA4MI8SCELOZS+G3k9d5X3EHE/XTwntnRkVNQ3IFvdpD1s+VZkgjwIHFVQmcKarrqz2JpmndGhDmiYjGp0JLxZreZfkHQLFefCPAg3aWI2lJGBKrKhTGgdJJA4AWenttccudoAmmkiYOPydkI8VkBAAAAAX386mBTrnFZm1NGMGYt1pidGriBHjjMtqpB/agMgUFMAAAAAAD+////As+NAAAAAAAAFgAU0yI+bwe+fdp1KEAGVvmZe2F7EBkAAAAAAAAAACJqIPAENtIOAAgI8CAXhmEyrjZBLDvgAZ18rogyiFKEhYRYWb2cFX+E2RQJUwgI8CDhnbxt0bS7F56TQM1YU8Y/0zw0EUCon+Yv/EAbNm+zmQgI8SCCeVvslP8Avgc+d2+RCoVBgIj/6L8pl+6seA2NWN85LwgI8CDT9S4K5pVpZqXk7Nx1nezcgIxWf0SLmFs679W11IUATAgI8CD7AakzJkhcR3Vx0V4an4+mWBoXkJW+zbXJ2+xcjupTkwgI8CAOf6L0T6zSwBk72wgDK8gPJei+177CFeYV5WDtUzXBlQgI8CA6/1es2x3wiHr/NZ5cK13MtB1SiMrH3gZpj6eg+qa9hwgI8SCHrdHDivcGYOdJA6xtdzK6q9pDldxPWJKAjotMHqauiQgI8CAscqz7Q8ZY20QCKFGK+IBT4Z4Lw5ztmXwTpjmHarCH5wgI8CAWtRDX/OrhpMQ7At537vFWDaLbcHxudzOFX82qXPDZWwgI8CBr/1Oxc1ksNmDGWvQSy+OpH3YKefXtM+8dqtEG7s3NrggI8SANKMuHLoxxZPWDK/iOar/reUfo0D83lShxGeeIylOkcAgIAAWIlg1z1xkBA7ekO/AQEBocSUNeGJH/3u/ObR5rnAjwIJcItccyBvBH2HBSxnCKGWlgrQsV6wvwJ3xAJq5qkkasCPEgx5gbri/owO/CIusKWC+2Shmg0kOL5RNgoffgMy3OCz0I8QRqzqsk8AjnGUOcPM94ygCD3+MNLvkMjikoaHR0cHM6Ly9maW5uZXkuY2FsZW5kYXIuZXRlcm5pdHl3YWxsLmNvbQ==","chain_anchor":null,"bitcoin_block":971315},"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"]}