{"format":"receipts-proof/1","hash":"39b7b0a85e568029f6502ed75ecac94827352cc8114bb10963eefe820214db40","provider":"demo-ema-cross","seq":115,"kind":"signal","issued_at":"2026-10-11T00:02:34.579Z","prev":"3248bc921ec6e0ee9acc5c73c8c7a27e7b07eac705ed90deea9f9b501a3867de","body":{"issued_at":"2026-10-11T00:02:34.579Z","kind":"signal","nonce":"d9276119af6d98d26a3d71a117f6314d","payload":{"entry":{"type":"market"},"expires_at":"2026-10-12T00:02:34.579Z","market":{"kind":"perp","symbol":"BTCUSDT","venue":"binance-usdm"},"note":"Demo bot: EMA 9/21 cross, 15m. Mechanical rule, not advice.","side":"short","stop":"83037.7","targets":["82747.5"]},"prev":"3248bc921ec6e0ee9acc5c73c8c7a27e7b07eac705ed90deea9f9b501a3867de","provider":"demo-ema-cross","seq":115,"v":1},"signer":null,"sig":null,"batch":{"root":"39b7b0a85e568029f6502ed75ecac94827352cc8114bb10963eefe820214db40","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-11T00:19:57.546Z","opentimestamps":"AE9wZW5UaW1lc3RhbXBzAABQcm9vZgC/ieLohOiSlAEIObewqF5WgCn2UC7XXsrJSCc1LMgRS7EJY+7+ggIU20D/8AhpyiEPui+GswjwEHuaHGd0h0fV44ueKF3NKoEI8CAVPhIGyjNIbNkXz7hngzNwHYyzSPFsWSOQfX9JXvq8VgjxIBWk9w69skbR2Kzb8wR8xR3YNOGLm9yzHmnHyTDdFSGgCPEEasrWL/AIQyIlYniqDbsI8SD2jZhRMFgH2eTfUD9YhadT5OvOgcUv1GmjehW9S6sIVQjxIB1sRQHVfczbspDPVGY1D4BbGg3cdFZYOZ7qWKMS4ctcCPAg8OZvTpaGIkzgMfyjuj/qGOt2frFMYEuvdgJThaHglRcI8SB7MXECyFzPm0dnFcw0UkurJPQjq57vRM7/qobQSmBJ6gjxIOrpaVbK+KUw3d9B3Kz6ZCcj9z34UUvtdMtAdCTueFXCCPEgg75w6RbOf6l/5oiccK72GGNBBN5W6xe3lCMKDHzZatsI8SCOx8k2TEpgwHRfSBzDDSj4NAj0Tb4HAiO/7wOASNa7rQjwIJpLoVT8v1wsiJSsv1ROOgwBH7J+NCSgtusyJW9B63nXCPAg/LeUNgwGPnoYS17JBAzuu2trbzCLQKrW3C4D6tTgTkoI8CDioADr00d6nhTSTDwo2gI7PXeUiqg6okNTn3QsY1KVFgjxWQEAAAABBDLWc/mOBhq2UDanbhq7d/3r8jYjlDsR7kn+yZGa8r0AAAAAAP7///8Co2gAAAAAAAAWABRoF/PO3m61/39Ny5vyHblKw+/w3AAAAAAAAAAAImog8ARj0A4ACAjwIEWav91AzCx4rsNoPIUOapHUQW/MkmoOT5nNMC6e/xM5CAjxIOAJB03D4psWwmbR4Q8KTkpkBe0ZaJa0xghZa+WEm4iqCAjwIL76fHESN7rdbOTruW+Z7X4vP99OsPdjlONP9TQ8Bs3VCAjxIN38mqXrRRduZjx+EVS68CyGCWRe7Dnv7/3hpyVykAu7CAjwIEZER2gWTE/++oimUU1goIhUWNwqXeeaPB50cIxXwH8oCAjxIBZDlPIkie3wuTdtVNgMRWI+RGXQ8uK0GOb0w5RnFJ7yCAjxINoEBi5+xssj4Sa6Nj/P/lAXbj9IPQDnlKKFKaSueRR4CAjxIJayRwz9mPgy0g4OSe/SO5BXNtKAlH+XSiIG3o4xjMzSCAjxIL1Tic0NFfPLxeR3x+WvkyrX3bJYfgz1BWmyodbfeuaFCAjwILzQ/ZsneGkvoSgJ1ShF9ZE+9uz68291WJ+krXGo/YNfCAjxIHRe/20x0oMxA+ROsbNXzqns9lUs5nB5UpIKvmLLydqOCAjwIJECnByQUzUsrbGLgK+VWuCy3a/7kD/XIo30nNrI0n2rCAjwIMrwuLlNjrDacjCd9kDejs89xrKV6+vDkkncul9NUvR7CAgABYiWDXPXGQED5KA7//AIYSpDN8t07cAI8BB3UK7PugxhP1HU2UlWJZEpCPAgHKaqHxRhoONA+Z0Nw/FjszC9o7pJBqL5c7NKz86qoDkI8CAMIpE+xE19PYReohSsMdIF0KT8H1D8nNAfVUCyioX4SwjwIPnmvuug0fnP3brLCBerKrVoXRw7Anh6GHtNJ90wdrk8CPEEasrWL/AIcJ8zKbIcwkMI8CCGEJs4qZgEcTXi2jpEIRlo3v+7M4rm6pjGhpZ+xhyJMgjwIKcXrvWgHc/OC5drMXrJgNH+sKAi1DcJtYeJ9yV9Ic0DCPAgcw8smfsllJ/jhagl6SSwQVMO1bLBPTxigWNLF3u4cwUI8CAZxcqBc7qCUW0TvtN4BvGG1/6AiKvgNhgEQopWkdh8bwjwIGDjQtXapiYt6issTlFFzeokssOQelbWVzHwvCAWGWDOCPEgZXR2Ub7evjqIGmrfM1ebnTeycgJLzAy9tGHnPIPjq7cI8CDuVp3j5VNF6Yn/JtiSqSTBI81NKEoHiWDQE98+cziCnQjwIBjafNQ/fC87/od6ycf1u1rA71Xo0EotqwiEfZi0LGcCCPEgFkbh/ms+GNlhomGajlEwxbIpIuPhtYMRcQrp0ppw4zAI8SB6bjaeKo7UyCBALDSu5ufUq7lieIfPsRR1LlSDuZl2sAjxINvROvxfg88rF97Mia7mI1Q75kw47fwp92Ae3v63auKTCPAgKT5eYYitZCZc5+uFXyl43xPpXzB8lvDDtrwXbT8a2fsI8VkBAAAAAZR8Ycpkv3b9r1UKgj6Y6Dvik3X9O7bIaE3QiTr+baneAAAAAAD+////AjWvAAAAAAAAFgAUYq5SmHVo6T2UsYg0ky54fRmtRSEAAAAAAAAAACJqIPAEY9AOAAgI8SDboX83y0BMIrSQY5TgoVr9IFp1wV3oWULrMhAOU5/xJggI8CBgKfDM4btDecUf9HMCG0BhjBn7QB5fWO0yaA2UMS3XgwgI8SAl/jWLpkTufEXvBzxdbAcBHbTHIZPVzt7QvpPHKWw96QgI8CBmTHiQiqvQENm2ZUnPhK6py8AT7U1jnL7u8N4Z4VXPswgI8SDJIJi0bWp8yjpZjIwYlqZ8yy+8hAdQLXu/zsYo/YHhzwgI8CBz+IMhauNGRxBIhcBmQphpAAhO+csNW52LcWG11Ttw6ggI8SAPRmJLFIfhovmguzZVsAri8X1/tWs5vxeKBumdkpYVKwgI8CD9wSIUKh7338sj8hA6R0Z00wc+QHj5UFP/1aMvTsocvAgI8CDOzrwkKciKbL6iAha4WwhPvKL5F1icYTm3gHcb9dzLgAgI8CC80P2bJ3hpL6EoCdUoRfWRPvbs+vNvdVifpK1xqP2DXwgI8SB0Xv9tMdKDMQPkTrGzV86p7PZVLOZweVKSCr5iy8najggI8CCRApwckFM1LK2xi4CvlVrgst2v+5A/1yKN9JzayNJ9qwgI8CDK8Li5TY6w2nIwnfZA3o7PPcaylevrw5JJ3LpfTVL0ewgIAAWIlg1z1xkBA+SgO/AQ5ub+P/lf+YCeVWeir3/ITwjxIIYk9lpA9yLjCo+tVr8VJ6iPCJMlcsiWbpo3qVVU4AZtCPEgMqnALjtV9BNStA6deY7xP1a2ySSYO/kDzgDX0XGAMSEI8CCDkA7j6q+Ru//mQTGR6ypWMy8SaGnBBRYwJ+z5o9IjbAjxBGrK1i/wCB4Mf2JCYHOyAIPf4w0u+QyOKShodHRwczovL2Zpbm5leS5jYWxlbmRhci5ldGVybml0eXdhbGwuY29t","chain_anchor":null,"bitcoin_block":970852},"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"]}