{"format":"receipts-proof/1","hash":"d91c7283de5d41369bb4eaf204f294f77bae7bafa2ec8cd42604b6e84727c2f3","provider":"demo-macd-momentum","seq":56,"kind":"signal","issued_at":"2026-10-07T07:10:55.280Z","prev":"83dbc8b8c2e76bff811731cd8aed39f57dc3ad5d1e484e61f2fc5d1aa0357d07","body":{"issued_at":"2026-10-07T07:10:55.280Z","kind":"signal","nonce":"24f6cdd4db5b8b3edf1a04a8f8e259bb","payload":{"entry":{"type":"market"},"expires_at":"2026-10-07T19:10:55.280Z","market":{"kind":"perp","symbol":"ETHUSDT","venue":"binance-usdm"},"note":"Demo bot: MACD cross with EMA(100) trend filter, 5m. Mechanical rule, not advice.","side":"short","stop":"2620.36","targets":["2611.84","2605.45"]},"prev":"83dbc8b8c2e76bff811731cd8aed39f57dc3ad5d1e484e61f2fc5d1aa0357d07","provider":"demo-macd-momentum","seq":56,"v":1},"signer":null,"sig":null,"batch":{"root":"d91c7283de5d41369bb4eaf204f294f77bae7bafa2ec8cd42604b6e84727c2f3","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-07T07:12:55.377Z","opentimestamps":"AE9wZW5UaW1lc3RhbXBzAABQcm9vZgC/ieLohOiSlAEI2Rxyg95dQTabtOryBPKU93uue6+i7IzUJgS26EcnwvP/8AivVrPRRF+wlwjwINBwCfQLk8RZtGnGTTmF+GrRe6NHvBTuT1+ZRaqX4+6pCPAQb05A60yA5SCihpChtzbEhQjxIErb4OzbOwgmVQNKGckTKxU13WcTWp3eFyV7/ewkQpjOCPEguBt791PmqGyl+KSnructSFDKRIgkyvU134fRkky0i4YI8CDwIkiA62uxtAfuIE7D2/u64Fcr8Qbs45n8BQcch/N9/QjxBGrF8PjwCNxC0z0IBFUfCPAg97bBkeHvZJ9mFNPHEkVm9QQMoE9O0e0l8xvZdyOBKn8I8CCh+7Iw5fbGQdNHmWzxzI8xLJFe1OKXjhtIQdfY01OrHwjwIAHZt9mshcqxm8uhOg+wFT1L3QmNF5dKTBXc1hWcUPp6CPAgGZL8eIRuYVbX5O8rxGMz+PHrmRrfjb4Ht91ZlxHZ2k8I8SATRAcU+d/MUohaIo2W6glxoXAqD69GeJWy0o9e2/qB4AjwIKVZzgT0tQF0z+29GIcaD2wR59L6UozSDvWsauEBJf6FCPEgzp0q2486D9nJG7OK74zK3sKuroNip+fY6K6SP+HjGU4I8CBYvQ2MXCnyLZAmjR8k66vKE7qWp/Sxz5RKHGb/3eDUBQjxICWybLbmnMohWcbd1Z9Jg2Mf/LL5IU1VFJNyaWQIbXNiCPAgljMUAlWWtsWcKy+r1tVu6FCbP60nw+/De1FWr2ZKdm8I8SDEGE8d+H5uef1oHLwNoX0o52RTdMhwx67E2KxetYMvwAjxWQEAAAABxjKlflNMkfzJXjUOJtwDFJ/m77f0Meuugrvq1OE0dh4AAAAAAP7///8CL8sAAAAAAAAWABRWRqBhmEcvSOLwJPHOqyFwEXRKGwAAAAAAAAAAImog8ARCzg4ACAjwIGYF2q1GCb2MuyInnpTwBaWK3PkgKbJBHqdokUQs7BdaCAjwIIRuH3LUkD8f+pxQDkXHiH1pnVuZlG0kRexc7Sk3KOKQCAjxIH8PPSK4SICjmI/4vDWFOQTo9erMdXIKQcXeqLNT9bXeCAjwIBofO4hl8VuxQLUi1dn8VirTQbqPp/DMFd0d5cJ8EUbgCAjxIFzGkHZ6V0/cgAxqQIxJ37J8CRRuELh44eO7U2GJsrApCAjwIOcv+foo1kMIKKDK+qTUVnQWlk11pTpq9+AdEOru4ECWCAjwIFlJbevctkeOtmPuPxoNBHXR49E6ds3ej9BOmje+UYxACAjxIPerDAb6/qN1s8v1vx+yzbRXBG3Gxx/uh0Hi3T3JlLq0CAjwIBkNonkJArn3N2qZe80yWbT8l0BwxKKPU/0oCKUURUr4CAjwIEfx5o3Gg6Lpu3v/KWXnM1JOLzlbG8qywEyIsc1xZ0qTCAjwILYEL0CjzAhPQk4ths19akwGqtRn4P/cD/Mr4cTWkD22CAjxILK2aBfTcPFQqceLR5SmOhYJ+vC0AJ+i1PLe5XtcNJz8CAgABYiWDXPXGQEDw5w7//AIAoFJQk2PUj4I8BCyw4DMRlE23eJtG/8aGTvLCPAgEsD1Gu4xJGoZihzXi0MzKDWTyYZiTDp6gYjeNf68YbgI8SBhiLIaGKvcu5hVXFJZfPiHuszeB9wXwKJVf4RairGz/AjwIDaoGQu9SBcNJv6RdHokbj7RlX5cAFlwY3ny+HgaaRpICPEEasXw+fAI+t8wBajG1CkI8SCJSP3G+jq7oyH1FT4U9QoSA1ZmMcyS7acVBkcwv1t8FwjwIEUfRUGvcF6fvLGlxdOFsm7GkbRO63Tf2RZUofkuQ48FCPAgg4JPEjb0deUuqs4gBtZtsRTSVyhBLCOxylLtFf9XxdUI8SB2U4qIBu0wODuTjLP2PYUNPTFhaab+FW0rZLEM6l3W2wjwIDztRvj4JyFYjBcl28An7N1UEgb7j6Fqwe4xWl5K9r72CPEgadzxTdhwjK57ALvo0kB8duGCzoI5skJDui6T/kchLIAI8CD+XmGaVdfWuU6PVhoNgkqDK85Lllv0PrmGfMlFDjMiRgjwIFbBCrHta/GWHJ7j7mmHm39CQpzQ8eMNPaA8pBpkerUzCPAgvPz7Zl33ou4gu9JoU7guekVKa3kunoSLuQLwA0Q0TCgI8SCmhQWQZASvir1cNi06/b2rY09o9QgNi5ziltmfsMcqCwjwIN0sG44krqD5oYT6liXwtLoMn4OZ4XvbwZa12YqkfokmCPEgqDFrOFgw5Co5sBF30FQq3S302kLjZZbLciLzXhWSiC4I8SDEa1VJfPphU5iV7rWmX+sOuy9fRDdm5miMdwh1iBbn+wjxWQEAAAABldyLN5K5CNqBSWY/VFm4orXsfDBXkIRopkC29cBoEu4AAAAAAP7///8CD9UAAAAAAAAWABRRPbdMWdyoDt3I62KVJzRu0i121QAAAAAAAAAAImog8ARCzg4ACAjwIBe/oXrpET/NeVru+iohjG70bjTf66YqJ1Tqr49hNvmxCAjwIBMdUqFqSxEIj8KS9XxUfr6ly0HO0eUFIs9hMLOaoSS8CAjwIDRlpOQAu9F34NnfBJcd9TA9BWqjPyAOzuqZzbzbDwWgCAjxINw987RLbChG9Ya92rWGA6P5U8qF1bh7thaggBJxC2J2CAjxICEI5IoaI2kbosTH/wRvc3pOx7+T8JMDhplkNcQMSDyBCAjxIP2WhsAPwFW6UFB3+C5o3TdEa3d98rLsILZ12n7pkLQ0CAjxIC+L8MF94JXYd2zSHm3NC0b1ome1TuAzqQtGVxqvja1jCAjxIJsKd2vNnkjJnYBADjrZh4yLP4uDVOrCeuqYBPsqF31MCAjxIJ2IQYC1euPTstV/tyE6+HHl2S9qnk8xjRSsX5vxxnWKCAjwIN2yRaOnkLu4sDpMY+CGrcUHkRlmnHypZ0UD3jsYOefACAjwIB5kdvv2Ix7RVi0tmaQmSoNtHzdavmXzHIgQblbcq21qCAjwIKqVwg1nlHTvmi02xaS6MU7CpRdLgRlA8erPCdIzGrNACAgABYiWDXPXGQEDw5w78BAasP9rqe5v3MnpEZME2+OsCPEgVpqqWnSfaNyPm27lrwQTVEJ3W+iSqUIiL280KQmB4zII8CCxMyXq1D+Nmp9S9TYEVTj5rxNvyd3vwd3pkEivw+aJNwjxIINq5Smg9m42rwvVNc0lAG1n4a5VESysrxSRi80wYRoVCPAg74ggTd4xvibxi1azAuiUy20xw37KoHOraC89rJsFYMII8QRqxfD48AhWL/+9I+zNDACD3+MNLvkMjikoaHR0cHM6Ly9maW5uZXkuY2FsZW5kYXIuZXRlcm5pdHl3YWxsLmNvbQ==","chain_anchor":null,"bitcoin_block":970307},"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"]}