{"format":"receipts-proof/1","hash":"a891d8407096dcd20c3802e9c98228f4d007992f305d5c0f2eded8c80879732b","provider":"demo-macd-momentum","seq":31,"kind":"signal","issued_at":"2026-10-01T15:35:21.282Z","prev":"8bb8a18becc4df8ee9cd3efb821e191e7fae81c83eef64f46e86579d5a5ccd2d","body":{"issued_at":"2026-10-01T15:35:21.282Z","kind":"signal","nonce":"064bee5364caf2df23de2398a810abe8","payload":{"entry":{"type":"market"},"expires_at":"2026-10-02T03:35:21.282Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: MACD cross with EMA(100) trend filter, 5m. Mechanical rule, not advice.","side":"short","stop":"84141.6","targets":["83485","82992.6"]},"prev":"8bb8a18becc4df8ee9cd3efb821e191e7fae81c83eef64f46e86579d5a5ccd2d","provider":"demo-macd-momentum","seq":31,"v":1},"signer":null,"sig":null,"batch":{"root":"a891d8407096dcd20c3802e9c98228f4d007992f305d5c0f2eded8c80879732b","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-01T15:36:19.936Z","opentimestamps":"AE9wZW5UaW1lc3RhbXBzAABQcm9vZgC/ieLohOiSlAEIqJHYQHCW3NIMOALpyYIo9NAHmS8wXVwPLt7YyAh5cyv/8Agsd2Z+KfLYlwjwIGoM4uWnFEZ87XWW9LOOvfRGVEJ7j1jgAmTiyrwfNw/yCPAgxW6/eNIELsk5o3WsqCphxSsclUXleClIwGsKc27Yl6wI8BAz9JkwGHMvT/0m6kau/3/hCPAg0OkBr61iPjJH2hJKAGZ5gsq7moBNvi007YYl1wyRKdgI8SCyfi0m/XwminItlBvyIrmwv+lxk385UHEE5EU94B82wAjwILsh57Q+hJsHNrKSvl+nJKV45r9P1D9q+yJAhpHeKj/1CPEEar599fAIiBTWQx524NcI8CAh27eViLgCqCA/E8GgiNh+U53vVcwhBuQZHkLCS2LNMAjxIJFCEH3unkCI1NOXwdkofEPCXsmK7z917C+nGjQp4Ha4CPEghuw2PF+ZLVfCUNwFNZQ4+Tw0M78/W1A/P+iZRrkBv4oI8CCzUbXMoDJptPb5UP7lz9g/94LgSHl5n262/uBYJ6aTmwjxIPKEsTdPqBewvdz+G+XsZOuiaqGwl4m0gfXrxuVHFubUCPEgHJF9+07/OvQ30gJIcv8sK59lYwSbif6bq0tzq4JyyOYI8SDXoaU9mG6uJSIagashikf2l7iz6WbQsO+C6hK9yJBXwQjwIHTGJXmZ0oegMxB+hm6ggJRpMGQ7sewhUTBfrL4ruwflCPAgysyhOrtHNvRuH1tJa5zsZRYpOkRSBc1Di9QjMElx0b4I8CBlmrCBBoyotUbf1ksY3IUk8w+ungUjZfqk77nNpN7JngjwINZ78EMXYMDIZVEOlN2V907Vd6tgoCa9+BDLx+DvNixyCPEgNL+PtkXGdAZbL/SNR4MEyCoqOXDE/v73XIhvGkd9dGsI8CCdoPeLFMHW9t7219RzN/93iAQC5XzrBvJP2IJPO5T2lAjwINtIxT/rW0TJOUAws0T5f7Up3XnEJZD8Bv8hZwEaFkM5CPFZAQAAAAGqOd/9SMnDodseRgClFf70L6SQ2yR2ZFNcHaTeBFY/mQAAAAAA/v///wLGRQAAAAAAABYAFMXh8ZbBObPmBxGEhHQ92krduSQfAAAAAAAAAAAiaiDwBP7KDgAICPAgB0dPz/d2p4yRF93A5YU/XkSrAGZy4rwid1uNTpD6yqcICPEgGgloy11QTFFv714Qt5hw6OmoGHgmEGEJJ7qFjfvDRHwICPAgC8osG2nVBbRnLCuzQgOOhiC05DEJRy4Db6y19Y02JrkICPEgm4SB9mpc+RWDR01vR8JNs2MFW2YgwlsTCWpSjsf51+wICPEgI3wmdt1PZN+AHoQs/o20PHr2NOZ9g0Nd/INoyXIQRykICPAgYL0+V8a4a6Vve42+qV+Cc3WSDFrhzYcn7nlZWA9wWGEICPAgebRtC7700WCY+YMDFPx9zQ4QFxsCo3rdfNdYtqglc9QICPAglHSfczoQJgrZXe6YAC9od33U6NtQzfbrL8PcI/EH0VYICPAgjldBVDcpIMALVu8ZDkDexUPPC+b4tZhHk9+SkIEE/G8ICPAgSBURk4R/Lu260TOOz6JVjoENy0lyzMTNPEnJu8deI+0ICPEgHy6zLnPNKq9fte3cU7Ue+220GJxsdzFVJ6/V4Uh4D3AICPEgM1e7H1x4OWaM0LFROCj1Qsb1zkUSXDwu8EXGM1eyXycICAAFiJYNc9cZAQP/lTv/8AjN5VlkvDmmfgjxINzzvHi9io+VB3FT2rIwp5GKXrkDxwurk34l9jal6d/yCPAQMvTdPQ6QxYxtTmtebXNqYwjxIPtRNi8semKa6tnRw8AP9lctjohlyl3NLC5HdakOyFdOCPAgTuVeXac9aYK3lN4APZ5l9SPuskktCTWHMc14pSwzf34I8SC351ICgLlG4XcQjcRGueptb3yAS+X/3XsK4HqlZuiHmgjxBGq+ffTwCKJ706KEFBKoCPAgxZLHp19bLbju4iLpbgm7HedjdWZd2hz8bXgWe1L9QVMI8SCeNwRSdqyNHou+SuBXCfsG6YpkKa+k0D5yJ7Jo7Y372wjxIKQod+g9vz/C2tpY4B5loa9SyRHT8YCaSufWVNoxQidmCPEgid3FRlSx6MgtZXNB2/PFKKtceEn0l6mT1E2vI135JKwI8SBF+DeEn5y9PrspVtQHzzLqu0iHGj+09mFAIcGRAwh3QgjwIEh+dsCm34ZDY6SaUB9MIGru4BBnTLqObV+CglfnQcR8CPEgEgXRwEo5VLbpaqsN+CoFEV64sQ/XfIFbJdmRFWFM228I8CCDl65Y7IiNZM6j7jLOPOaFbpzKULO6gQ5ijKWpdWQMrwjwIITu6RLJJoN1SZI7zLEcONusJjSAoYwNRuE6hjMABlBxCPEgru22ZxyJuFlXyNPSN1MQEP6jN18hUhEbUjE5Fn2MAOMI8CAqjRwgNDNrhuVEvK1FY+pIWb+n8MdvyNlWEq8WQQsN9gjxIIOUodscIKEaIEez8YGmXc1gNbvt8Z6SNshdKl78h7bDCPAgmlAYnZaRn1nivJWtGrKy5vfYX7kjjOx6Mvx84CYOEq4I8CBpwLchpIdrlFcRCBS+VVlLnwq4qeNIQ4sqD8DRzsCJNAjxWQEAAAABYOko8o1iORrBmO0aD+GBOM+pJauuIS0mqjoVtKCLziYAAAAAAP7///8C/GEAAAAAAAAWABTyKpQGoA5/hhWmwHm4v47m6cjLXwAAAAAAAAAAImog8AQByw4ACAjxIDNqdqbbGRanopcog549ax5OGfFHIyn+zoPCdWe1EHllCAjxIDRRdsO7s5ZdAK1NkpYQhlQTYgSM68aOqSfq+iJBUwKuCAjxII+Yoq/QuRSnB7yqEj74yLel3tu77YzeF3vN0WisCjsUCAjwILev1GL9HiZxuOkVlREegsZM2Fg61Tudd6mSJhddLwplCAjxILLygcwOGf2bc6P5OsAopRYpGWkX2/nQZI4iTpkIiPfpCAjxIJuA6fofDEcU0IGHW7hxvUGdSzKOd3XVGAKRDxLvVYqECAjwIHrqeCBNlHdKggdS7M3tYkx7jBC4otgXMaWb1zUvyebfCAjxIKnBApxnJoDCE3ZoEDr163LjJjZaoCPwqEP5xP7IVDBHCAjxIKXX//IY5sntBcCr0W+K3lh0x3kTjZl9/ENy6Lx3qBiTCAjwIJa+4WzVL8EFENrs4rn7QuGDqx5J5dBTuP7aYuJ+6pV1CAjwIBuIt2ec628eXyFCKTFBCj7S2n55wf5sSWfuZ0j9zkgdCAjxIItmO/5uHPCn0J0wpPl2jpv/ZKmUw4FSXMy7Oitck/mXCAgABYiWDXPXGQEDgpY78BBcs+onGLpkNWcAqmjKaLS5CPAgH+eRBJyRgPTOasuH6RNYdK/1+eH9ePGpvyNa2j1V3aAI8CDs5qnC9n6XO5YzEul56KepUkPMXy6Po7mwI6HyxshssAjwINyK7bNJn4FNstp5zs7RrMj1CV3xi3wqQFLL9VG+raicCPEgOYgKiX36Lsl2wtC+jeg5nsCVnL1hvSD2fdbt+4nTAGMI8CBtE1HOYC1OWBj0+yfkHNWuq64Um/0HCmv6kRiI6WqIzgjxBGq+ffTwCKvswP7PfiFNAIPf4w0u+QyOKShodHRwczovL2Zpbm5leS5jYWxlbmRhci5ldGVybml0eXdhbGwuY29t","chain_anchor":null,"bitcoin_block":969471},"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"]}