{"format":"receipts-proof/1","hash":"183635c8aaf7e5fb969f24f05a4cd8e6a78cc3d7664ea47234b41b35779143f6","provider":"demo-macd-momentum","seq":62,"kind":"signal","issued_at":"2026-10-09T23:43:04.690Z","prev":"2e1ac614818d87a130276d0c4c0395df2b9f9fc42bdbb0ee0dd1dadac19076e8","body":{"issued_at":"2026-10-09T23:43:04.690Z","kind":"signal","nonce":"44eaf824431ffeace2e8daa3f0d0dce6","payload":{"entry":{"type":"market"},"expires_at":"2026-10-10T11:43:04.690Z","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":"82604.4","targets":["82501.4","82424.2"]},"prev":"2e1ac614818d87a130276d0c4c0395df2b9f9fc42bdbb0ee0dd1dadac19076e8","provider":"demo-macd-momentum","seq":62,"v":1},"signer":null,"sig":null,"batch":{"root":"183635c8aaf7e5fb969f24f05a4cd8e6a78cc3d7664ea47234b41b35779143f6","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-10T00:16:02.777Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970698},"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"]}