{"format":"receipts-proof/1","hash":"9d38af9684621112c5d8a21f624a01091d54bd60b518b57e90a25c7ed41544f0","provider":"demo-donchian-breakout","seq":23,"kind":"signal","issued_at":"2026-10-04T08:27:07.617Z","prev":"76bcd953f5c0d7e5e1472a12c3ff56676ea15d8592d96dd6c116c4c9f70774cd","body":{"issued_at":"2026-10-04T08:27:07.617Z","kind":"signal","nonce":"2da4f6214e2e0b2fa3da6f596b6a4575","payload":{"entry":{"type":"market"},"expires_at":"2026-10-06T08:27:07.617Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: 20-bar Donchian breakout, 1h. Mechanical rule, not advice.","side":"long","stop":"84778.5","targets":["85507.2","85944.5"]},"prev":"76bcd953f5c0d7e5e1472a12c3ff56676ea15d8592d96dd6c116c4c9f70774cd","provider":"demo-donchian-breakout","seq":23,"v":1},"signer":null,"sig":null,"batch":{"root":"9d38af9684621112c5d8a21f624a01091d54bd60b518b57e90a25c7ed41544f0","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-04T08:55:46.006Z","opentimestamps":"AE9wZW5UaW1lc3RhbXBzAABQcm9vZgC/ieLohOiSlAEInTivloRiERLF2KIfYkoBCR1UvWC1GLV+kKJcftQVRPD/8AgPVvroUfpLQQjwEG+WKMOdc14jb6HR9uyCC2oI8CB3RZmVRGlzu6Iukog1CSep3N2hVKjWn5NKvYGm6uWvDQjxIA+i9B3w+nkocbFyZRNUvKWJ3v6J2qRg4If/6aehd/IJCPEEasIUk/AI4Bnl+ZVhZ6AI8CAu1qP5KjM7YbXLw7Dj7+d41Q9LHi5OUB9i6bAaaiKh/wjwIH+cz0emcmwpIyzIFgWv/IGggkStZwn5jnmU6bw/2GkFCPAgA7gLFqPAkJRJYZZWi7oh+thV/pEoAmsUxaAALaVpaeUI8CDnL1orod3gm8gQ0iDtaxpaxSnU72EOMvOVKUzmTekJ1AjwIGHu/grFTcxgXWyMHVXHu7MIt4SoDAup8XSys6dRjC3gCPEgtjR3/96s5g8ixjFLc2xfdXyOrqnhrw/AJVUiJ8bcWZoI8SAwefzJ8UY6xJm7Vc4wetnWEVJLhxmZHGJcljjzLE6/5QjxIBTWiNIMFZYolvOv6Deu3/v9cSkF0gzC9CZvd7WvUA4PCPAgjsNlDgB2wmfwfDiz+4tsW6a2jgPKS2eX839c5uooFWoI8SDazknDPBPe0IO93zCgLKc5N0umAps2xvjR05rFXzwN2QjwIGC73uIZlpuWb7wC1xlA4pkDF8KVHjZzxMPc8Ic7dnHzCPEg+Kh8g8VtoKiL8l2VscQVPmQJy9+fyIQ+vghEWmAAg4kI8CDM600jlvM7alq+xX9QiiG9Y9fXYJjvKoMl6CHj/f1G8wjxWQEAAAABSztSNWHvKw2X0tL9uCopCk59+vWLXydHvAFcD9Zk/K0AAAAAAP7///8C4gIAAAAAAAAWABS3Fd9E6mLk0uDo7AhTjtJN4GYVIwAAAAAAAAAAImog8ARczA4ACAjwIJFt4jMgccIhBkdYh3gTQ852IIabD0jHDpbaFnPPvCLQCAjwINojWsfxId+zUStjmhp5KnihQsY5yY7oG8FsJ+xG14bYCAjwID43pMI51sZSO4/O4LRwE5ZLxNlbbq/8mE1oHJP71uatCAjxIHBXzPV5SwFFTnKbw3Qf5+CM7FWOK10qaelQeHBD/vDyCAjwIFDrfu5Wj6HbEcJ9BLYXsnUEs30dpT2rUAoV5rIGtWcuCAjwIBcJlmvZHtd5C0OzS+eEn+BB9Pe1yJ+Mwu6OKKKH0A5TCAjwIOpXMaYsRafKTJ9hUNkTGmp6ZXPheozy374iQb2Kt7drCAjwIBai4/r+j24/8YRg7VFjvfJpRwIOXArfKL2ssopPezCDCAjxIJ8xzs1CNqTz10DM6k6rlWmneR/31SU5g4niqtZ//3U0CAjwIEtGrWJ7kPbEbbyyoZbhNUItPNXn928nJ/WRHR2bdMVACAjwIBHYK6TyYQyc82xhBL0ga1uU2seO0hsE9/AShDMs2WNbCAgABYiWDXPXGQED3Zg7//AIVPiSYtjYuEQI8CB7+bKPSnI4GO5sU+XxPqRCbSGYgPV/ymIRP6xw1OjRiQjwEMlsDU0f9VKLMGCWHc+9MTUI8SCMscbnvbhhUezA+wn6fj+USrWd48EO0qGA6tMnAMa20QjxIDLPRd3a0W2iT8vlOGiB1Ecn/SdcysNOhs5tIB9ypwk+CPEEasIUkvAIY2lCRXHymNII8CBlidg7ScxEMG01uT7ekfQ/bSR2vaOEeB7kg60vopNilAjwIAvOB2AAc+rDKg5G09bDVYmigo72qHGuXCST3PLGHlWiCPAgSI4fcGkZWv+Z3QpnHBQ3IJVlZlBsPrdPiX2MQqgL5sEI8CBZJU6oM3BUvoqP4tmGAXqBj+OUo9BTAQYTU+oXpT3gtgjwIKL2dUI8HO9ZCD4uAP3Ic0oD+vpYXQh0yvMufQwnOzlsCPEgB4ojxrih/XZFcWv6d3bb3iYCRGocOkx+Mhd3B63DLAMI8SDYm7xXzvbeXGzbrhUksIHg+aJD92WfxXyLDdm14EULngjxIMd09HraqvhS/Ha1ZNBksaKg3nkzRiiUXqJKNdaKjoeXCPEgyNtxJqUHgiqSBsOBqAHpjnc4WnW9NSHerFS7tYxNQrsI8SBH2mrlwhEDjMNC5lLeRind4uiMtZqq1gcXXzW6SuSB9AjxIJtp3X4xegQjSmWIpcKREYy3nHqQSjS3+AAt/sqNB14aCPEgEFnAidrnxtILleKOw7L9F/RFINa7pP/CaymPymg2WRII8CDadth9jJ5bKcIB8hg/VPDgzwP7kzDKmuHL+UU85oCniQjxWQEAAAABEkTXURK9Hc0eskTwv6dwKmcZGH3rJxHQRh1rD5iWb8cAAAAAAP7///8CkvcAAAAAAAAWABTvxRDyDrej4zFMz9xoejWYiSF/+AAAAAAAAAAAImog8ARczA4ACAjxILOHPFxhn0rf37QRtY7CiiU/E5vH4uEDC5JbtmI9l4wMCAjwID9FZ/fHxpCGd41ImTViBc6TNCVjw36L3ybgugLWGOIxCAjxINwjp7SHs2oKNZgpsVZ08DkrBDVBbJKdV5DLKpauXVKsCAjwIMZ/uK/daVv/019pOe5XjxjFal5cjkCq0U9popTnAhIjCAjwIN5mwv/67akSNfs1T3ZJYC2pSp+ao0sXBJuNmVQh+GW1CAjwINX9MsOFAst1V+DIBkQOhGXm3i+vpgQAeuAwxL+qsXE8CAjxICxhF0WSdXDLwVh0jaXWBPZBk9x5IVrvbJk6d2cfqyJJCAjxIKrQVdi6F24o/bCaQ2Z75Epne2gMCM3XrSyjL7uuqC6iCAjxIJ8xzs1CNqTz10DM6k6rlWmneR/31SU5g4niqtZ//3U0CAjwIEtGrWJ7kPbEbbyyoZbhNUItPNXn928nJ/WRHR2bdMVACAjwIBHYK6TyYQyc82xhBL0ga1uU2seO0hsE9/AShDMs2WNbCAgABYiWDXPXGQED3Zg78BAVYN883rT4vUzrueuWVBZlCPEgfTKlXnKVR80kuwxYnLbSdZJ4RMZAeWcibNFpErsU7tII8QRqwhSS8AiAJAI39vj75QCD3+MNLvkMjikoaHR0cHM6Ly9maW5uZXkuY2FsZW5kYXIuZXRlcm5pdHl3YWxsLmNvbQ==","chain_anchor":null,"bitcoin_block":969821},"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"]}