{"format":"receipts-proof/1","hash":"91df265ae9b0b24453da8860f3511612c9e72cb7c5c311a5f632f0d4873ceac3","provider":"demo-macd-momentum","seq":27,"kind":"signal","issued_at":"2026-10-01T10:20:20.621Z","prev":"71cab4929fa0f4af1fc77167c2fddd97d36010057f6db3a19aa48001f93e462a","body":{"issued_at":"2026-10-01T10:20:20.621Z","kind":"signal","nonce":"95e57e1dd207a5cf761cbf4231151573","payload":{"entry":{"type":"market"},"expires_at":"2026-10-01T22:20:20.621Z","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":"83825.9","targets":["83448.1","83164.6"]},"prev":"71cab4929fa0f4af1fc77167c2fddd97d36010057f6db3a19aa48001f93e462a","provider":"demo-macd-momentum","seq":27,"v":1},"signer":null,"sig":null,"batch":{"root":"91df265ae9b0b24453da8860f3511612c9e72cb7c5c311a5f632f0d4873ceac3","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-01T10:21:19.414Z","opentimestamps":"AE9wZW5UaW1lc3RhbXBzAABQcm9vZgC/ieLohOiSlAEIkd8mWumwskRT2ohg81EWEsnnLLfFwxGl9jLw1Ic86sP/8AislMv3M+sqMgjwEPun1YYS6ctdbCf/K/xruZwI8CBQZkuCh8WBIuVW9zC8UxwrruNJRpOUQ6nG7P2/Mz6CagjwIH07Am6WtIk3LBg/AXL+oaZHNAbwYMHDPchF3YP0NLGgCPAganBUNlKEzjHw6LmBK1aV9cVjP0fbZzyvXTRyGfgOhUUI8QRqvjQh8AgKEDgnKQjHkAjwIIta5oQV8qRRjZMf92jHlV4kpjU5O9gN4XIjAs2tfZrNCPAgmVDNfcjIjrFUlwd5FUWFbAh9ODgCjn0l2jhflS7E7LYI8CCoslxn6zdZQA7Hmlcf8NXPzGLxLB7Tm8m9wfHAWX6sGQjwIBFFOHwhmEUHUsUu/HnjGCXlCJLL6Ch3/MqEzhyglSmkCPEg7uK1pdoLUx6ZXVvExv+WgGQI1ZMjFCeWgF6qlGV+NqUI8SDiq2D26l2pSpYi1qI/N+ZpKU3h8gqZaXLMI7XFYz+HCQjwID/FexQQRkD6PSMeu3dXueNignFF0UYrQ688aOJyBUr7CPEgW6CMl/SnJ7ly4P4yqmGkq4FrvUyp7+emQCxy9srpnJMI8CAe/jaFYiLAZ/jsByn1lPraclHrM0NSNuOEnOVWzknIXQjwIKdR7HRSoSSyh5Bu+fr7xSgRdYIt5CuFNL+tUxQpxKraCPEgsNMaBC3G34ey5m5g+/MLsUfISWbo1eeTqRlVyS5iGWcI8SBmtEtaQX8BsjD6RsZRuxdwUZp+nuCy/frBdECpKtmADQjxWQEAAAABymRkl85Lw+OdZLImfhkz+DPbguhCHlcGmcKF+PTT3AQAAAAAAP7///8CkksAAAAAAAAWABQyiopGE1ZTZ/wdtvx6Hz9opwm91gAAAAAAAAAAImog8ATfyg4ACAjwIBaCt5/Rr26zqf+JS2D34KC2tsiVtt1sjHc3dAufDX2zCAjxIEfmq6lvo1yd+oYK1Rk9Y92IazApxiCpAxQtkapNc5kXCAjxIH11dBbvUMYbMfpxIgrPbeM2HRpCgmNUuL3dapjbRuujCAjxIIsykCjrFm9cE9Cx21EEvkaKCKqUBa0Jd9F7UYTGIgrcCAjwILJFQaAryOp46mdrILuw/fNjei9CEuM5hNU1hbqccvHUCAjwIPtNOmeyZQ/r2m3QY7RKus+wF7CC8CJXE5X8x8+et2v4CAjwIBib8gT4aUnYQSFMvI5hBDkBvsDkjBJw7ggdufUtvYM1CAjxIMt5ljaEYA/E0sUSv+KmjRY9nnEsIO0VOCGeF79MuV9TCAjwILTaXQYaQFEOV4Bzt7yQ2G51vy7derhoqvUf+J1JRhG7CAjwIOd7XTJApb5c6bjbVudsHixnoUOOXaf9qqvunNilm6luCAjwIOzrc+L8qlpHlUSU1jDhFgH/6lcmCMmrvoVu5nO5qP9qCAjwICBTegKfS5Jr2iLV6yVd0+7lFLp2w2qESjJDTQZ2lt7WCAgABYiWDXPXGQED4JU7//AIcP3KES4lmowI8BD/RS73LuHDI5tr6NH31wOSCPEgdOAtTS3WlwS2lr4/84qrnZgDjZ3SqggcMcXEHUrhpDkI8CBJwRKPhdsYFJrOr1SS+roxWLuonoqinm6qW7usRy7c2gjwIIq+gMYn3wxKgX/KAHMX9qIFd1iqvPpXHJuRh89/rmmZCPEEar40IfAIl8AWh0IEghwAg9/jDS75DI4sK2h0dHBzOi8vYm9iLmJ0Yy5jYWxlbmRhci5vcGVudGltZXN0YW1wcy5vcmfwEKbngapKFIHfnyHMo86n1owI8CBkdJwKU+rDQSR4ohL3TMXawjzMkvKVcRVksnqsvuSwYwjwIC1Cg2S0SDl2qjAz92vf1I020voD96MpOJPv8bSRIZ2OCPAgjo2Mx9HUeKfbKNYy4y9MU9Oo5+Bs6kRB5y9yqG7c+3AI8QRqvjQg8AhHeP68q+4X2ACD3+MNLvkMjikoaHR0cHM6Ly9maW5uZXkuY2FsZW5kYXIuZXRlcm5pdHl3YWxsLmNvbQ==","chain_anchor":null,"bitcoin_block":969440},"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"]}