{"format":"receipts-proof/1","hash":"4e4eba8ea6097586ebb0a2dfc79b35738c3199e4bf6fde918c807c5130111c86","provider":"demo-macd-momentum","seq":66,"kind":"signal","issued_at":"2026-10-11T00:19:57.536Z","prev":"cce39880442cd68cb2f1a32d045a7001bf910a33312c828af78144374308e6fe","body":{"issued_at":"2026-10-11T00:19:57.536Z","kind":"signal","nonce":"efe46f3b8b08597f724aa6447a05973d","payload":{"entry":{"type":"market"},"expires_at":"2026-10-11T12:19:57.536Z","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":"2504.25","targets":["2509.49","2513.42"]},"prev":"cce39880442cd68cb2f1a32d045a7001bf910a33312c828af78144374308e6fe","provider":"demo-macd-momentum","seq":66,"v":1},"signer":null,"sig":null,"batch":{"root":"4e4eba8ea6097586ebb0a2dfc79b35738c3199e4bf6fde918c807c5130111c86","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-11T00:41:46.947Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970855},"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"]}