{"format":"receipts-proof/1","hash":"d8c1e0729a1852930200bc7ff5661c529e788224b9e7fa477682fb803f8f66a8","provider":"demo-macd-momentum","seq":91,"kind":"signal","issued_at":"2026-10-14T17:40:42.183Z","prev":"544f2a8321f745616136d5966f03e1b331413cfe29d89072af189ed0dd598d7c","body":{"issued_at":"2026-10-14T17:40:42.183Z","kind":"signal","nonce":"7a120b2114f6424ff84dafc4e32d97e9","payload":{"entry":{"type":"market"},"expires_at":"2026-10-15T05:40:42.183Z","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":"2444.06","targets":["2427.72","2415.46"]},"prev":"544f2a8321f745616136d5966f03e1b331413cfe29d89072af189ed0dd598d7c","provider":"demo-macd-momentum","seq":91,"v":1},"signer":null,"sig":null,"batch":{"root":"d8c1e0729a1852930200bc7ff5661c529e788224b9e7fa477682fb803f8f66a8","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-14T17:40:47.238Z","opentimestamps":"AE9wZW5UaW1lc3RhbXBzAABQcm9vZgC/ieLohOiSlAEI2MHgcpoYUpMCALx/9WYcUp54giS55/pHdoL7gD+PZqj/8AgMexkv6Gv98QjwECeZ/QmmVdiaR+OSzEHa/vcI8CBU6UXg/tYJziJR6SLQ7DkR01FOqBMQseAnDXe5KZpw1QjxIC8Slrjvct58XFDpihinwdb/d2ZgtIfvPP0JnJUDMU2YCPEEas++oPAIb6i9DzbtCDMI8CA58PW8GH/6xXgFsWLtlFVJK60F01YOQf1zNhMJEbHm2AjxIL8JCmc+Vgld4tbGegz6ZIBl+kroKK4AcjQhLstg1PasCPAgQTr9ziO6dwrd+alrKLNYToayzhUwPX4QnQ2ElEJiZo8I8SDoekidUSh8PfnnOSMkkWXR2i5ObHwGAfGMk+jouXpS3AjwIIs3rdLaRrngxjb7VufIXDxsiV0FcKTcvUhc1UvGibpWCPAg98ycDGaZ5BjB5ufTd4FY993xSi3bfufvO7sh2D7BuWQI8CDaPLDpgSwAZxotENZ2iAZs8rpvjSudBQn5lH5ywSLZIAjxIM7gZvIWtIY8SpRVEed9ihgAdWUg93ILzp6SSYKg10AhCPFZAQAAAAFogABXedxI/sYWGlVhmt9JRzZKsAfqZ7VnJC5hp8jdwgAAAAAA/v///wIGUgIAAAAAABYAFDz/ePndkPnylODSjNmrN7nDM9wpAAAAAAAAAAAiaiDwBLTSDgAICPAgebPy2ZQeM8BI2gCyz1+spEbx+I1fHwds71fw6d3HbbUICPAg/GX9nPIbZRm5iZeSZ8VVnzV7fsYTWwkAGGva0EHODf0ICPAgqVU48EegxQJhgJJZskbRTJpMqX6hzmAaiLmT7vdk0jAICPAg1jiQPL7FhipIt3hqTtJvAaxXclJNvtbfgYUcKpzW5z8ICPEgjvBkAUfM8s2Ew+H/jmxlvl6S6wFlANAmqW8QZHunLMcICPAgBm+L737ob08PJmZ4dfg+aTmYUCNgdtMw6mHkrtbTBKMICPAghuX/nZUjy4+4ObU3zp8/Xiik0qnhjaPmLanKZwZz+NwICPAg0Ff9FWC24UGwKUqmqwCq/4sFZkGc/bx4aw0GJHEDwz0ICPAget3QKekeDGWT2yF7eu3kQkRdvu/1KUoUBoXKre7KLQQICPEgkt2YzHPra38TrWyhZq9JPPVgkQHIVJtTAkTn4UsNVmUICPAg/w0i9YTMSAqggLQtwdpWPdvdo43lMMkzK+PbrkZeGjkICPAgtUWfW86ee6lKtnhUF86EEz6upbtOW2vBxBa8zVTgRt0ICPEgAkYu66RRUyPULLMLKxHmp3AVjPQ/6SNbUMVN6J7+CL4ICAAFiJYNc9cZAQO1pTv/8AhzbtNQ5ZpQJQjxIANzT1+wAJ7zexug4uKfxhiAWLXtD+0Phni8v2vlREetCPAQQzLW1lbt8D5xqAyhKgC6awjxIDpjPcBVwWJr84L8k+EBqjjs3Ly6ugpadRDiTgRGRD5yCPAgGLXaTaiDby0HGG+aiNW+drwDBAYGXSbjsDA6ESbeFO8I8CBqqPL/ETENFR8tKpFAnDsiQEYl+QEXNsmljHF1WbyBawjxBGrPvqDwCHMOEprJACQ/AIPf4w0u+QyOLCtodHRwczovL2JvYi5idGMuY2FsZW5kYXIub3BlbnRpbWVzdGFtcHMub3Jn8BCEII7VfNgJsVFyw7nJppl0CPEgAKehxcQ5uf6EUOVM1c3mlZLtLgQYXzx3MD1h4+mNj8kI8CC694Y/5UnknZaDoySMJp0GoWxQAofKqUuQQBk1fJdFmwjxIAXh2xnauLMgxrdtWAzGMukIvw7Nui0Ii0m7XEUgddvgCPEEas++n/AInGrepdvHPlkAg9/jDS75DI4pKGh0dHBzOi8vZmlubmV5LmNhbGVuZGFyLmV0ZXJuaXR5d2FsbC5jb20=","chain_anchor":null,"bitcoin_block":971445},"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"]}