{"format":"receipts-proof/1","hash":"0718374c397bb20a0066a32515bd095df483a061bff512a0304b30eecc77ecb4","provider":"demo-macd-momentum","seq":74,"kind":"signal","issued_at":"2026-10-13T10:00:51.437Z","prev":"649baeede5dbf559cd3208dfeb5a06ed1158763353f1e1157c81112e4fb61197","body":{"issued_at":"2026-10-13T10:00:51.437Z","kind":"signal","nonce":"a6801b435abe708a398371079d416716","payload":{"entry":{"type":"market"},"expires_at":"2026-10-13T22:00:51.437Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: MACD cross with EMA(100) trend filter, 5m. Mechanical rule, not advice.","side":"long","stop":"83412","targets":["83770.6","84039.5"]},"prev":"649baeede5dbf559cd3208dfeb5a06ed1158763353f1e1157c81112e4fb61197","provider":"demo-macd-momentum","seq":74,"v":1},"signer":null,"sig":null,"batch":{"root":"0718374c397bb20a0066a32515bd095df483a061bff512a0304b30eecc77ecb4","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-13T10:00:56.076Z","opentimestamps":"AE9wZW5UaW1lc3RhbXBzAABQcm9vZgC/ieLohOiSlAEIBxg3TDl7sgoAZqMlFb0JXfSDoGG/9RKgMEsw7sx37LT/8AjS5UBAslFSGwjxIGBEsX3G5BGsHERne/NAJg7W7WEy73ZIVMMDDh9JqAUmCPAQaoIz2j8p8q1EQXw7euAzuwjxIJiHcYAHv4wPoG8pEvMiWDSa098KN1fjpYfZiairySCUCPEEas4BWfAI4I/zzRrSHaEI8SCzb4s7MW1IZi2iWRVq1e6g62fmcYnVbQnDOR/qfI+zdwjwICVWWjVrH48KD2tJL0IUzhkkRt8QNBTgB89JQU/YKIi2CPEgVT3GA1gE87w6PddtIflioza1KkmCMcj3gz1ayL8S3BII8SCqbnMQBk2VsUY4IAz+dBZ54WncrwFdbCBniS0fQcZuUgjxIHupebpPJ1K49kTFtCHy/8Y3hlqCOtoA/9+Vg+L/3R6bCPEgY5aIP4iFwc+cWUl+PFsemw+09e/c0WW764CkVcalau8I8CCTWN5eHfw/BrwxO3E9PGzelTad8ouTyCtjAwxON0kt+wjwIC06wzH6T9RdY7IIsf236TrtbqngK2vRpsZMFLq17iMzCPAghp2PyyWaPhQIh01bmHsgBv9F6GxA+oUe5jri/kBc0zYI8CB/DLIPadhTbWlJD/LqlNg018dKDp2zvZy1egtUOYtrSwjxIAbedO7IR1BA7vq8R5XocNqKpIRQEWoqEcz6d3ttmo80CPAgr6dgKzvOmZ9JtqDmgL6QjvHz5GIoBjrTCXt0XHmxkdAI8VkBAAAAASPcF4NqMkE1AH6fwyu9PueN9Ox5oyC7ontOr0YrvCsKAAAAAAD+////AmMmAAAAAAAAFgAUYJYmpqESkVaFMfDBXaRIxqhYX6EAAAAAAAAAACJqIPAE3dEOAAgI8SCC2exHyycO6IydF8cE1QdUtAltYimewEu00SzaOTghWAgI8SAxKyVnXoq2hm7E7q7Yoo6OBNTY1H92ylKMfYv7i1LSBwgI8CDY6cN/38oYrxT4bySgiKEmvKLc7cMGFg1D4+q44vjCcAgI8CAnFA5ut7OAZjlhTq3WBI8CPSJX1JsejSR7gTJSe8f7CAgI8SCugmC5Z3tXCkmT15obNTWTCm3qTr99/LvNMwXxQ91xewgI8CADCKffuH0OIlkmJ0ftjUx5cELQwDdYedrJfjcTsoDmGwgI8CAuNTlqOMspfrdWws8tgP0bTxBgls9nmcwcX7IEBNxDywgI8CCez/VETR0dGM9AfVJTjwugXJtLmNAnKTfByxlYWMENkQgI8CAMvipoGSZqkXvEFs1IebZOTrrJVPI5ckThyt3NkIq0jAgI8CCSPAdcMWWfuRI1FdUHc9tF743BetrPawLjQ4MBXdowLQgI8CDGVOuHjBfu/Qx7ymCIENQApV0gwdClyzSO7ClYu/CNNQgI8SD4Aj1TXLTTRvhAEmjdOqRsG8tk16lp06efzvM8d0NiAAgIAAWIlg1z1xkBA96jO//wCDFKL0DALSjKCPAQ2+kjV731hDymq3qXSXEgjgjxINCFhJgPn49GRbxxaZB37NYM5SeJmSypve0tiOo8VoMqCPAgkzCKlkwhyjfb+whVrQ7lr3+AhSGKzOYcu4qXmgWK+d4I8QRqzgFa8AiC9yltnNQtvACD3+MNLvkMjiwraHR0cHM6Ly9ib2IuYnRjLmNhbGVuZGFyLm9wZW50aW1lc3RhbXBzLm9yZ/AQnxzuMzExqH0gKrZmUSTtrgjwIMw9XXA884aPykAYny216POyTmngw3DwaVUMgQZ/vwV9CPAggMElWa1MooaAOqjZ2JevgAR/WtwRVd6zSbe8G4aMdjwI8QRqzgFa8AhM28ejjhjD4QCD3+MNLvkMjikoaHR0cHM6Ly9maW5uZXkuY2FsZW5kYXIuZXRlcm5pdHl3YWxsLmNvbQ==","chain_anchor":null,"bitcoin_block":971230},"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"]}