{"format":"receipts-proof/1","hash":"3293e9489590ccd0a8e716f1e7dbb3f34ee5186964b71ef1d196852218a9b614","provider":"demo-macd-momentum","seq":95,"kind":"signal","issued_at":"2026-10-20T12:20:55.348Z","prev":"1b502a3f3ead3151a225b655a89596e02b170bea357d4acb4f322da5e6e81cb4","body":{"issued_at":"2026-10-20T12:20:55.348Z","kind":"signal","nonce":"d797b35648649fd5693bc72aeba8e8a7","payload":{"entry":{"type":"market"},"expires_at":"2026-10-21T00:20:55.348Z","market":{"kind":"perp","symbol":"ETHUSDT","venue":"binance-usdm"},"note":"Demo bot: MACD cross with EMA(100) trend filter, 5m. Mechanical rule, not advice.","side":"long","stop":"2383.66","targets":["2397.22","2407.4"]},"prev":"1b502a3f3ead3151a225b655a89596e02b170bea357d4acb4f322da5e6e81cb4","provider":"demo-macd-momentum","seq":95,"v":1},"signer":null,"sig":null,"batch":{"root":"3293e9489590ccd0a8e716f1e7dbb3f34ee5186964b71ef1d196852218a9b614","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-20T12:21:49.814Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":972323},"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"]}