{"format":"receipts-proof/1","hash":"d88dbc5f8c716cac177febfa99f568c30e94e9cd22be28a0195cd27783f2ad1e","provider":"demo-macd-momentum","seq":68,"kind":"signal","issued_at":"2026-10-11T19:50:38.386Z","prev":"2ca83a927cea4db67a6fda5bc9e070519fee37123dd602a5dd7e5565d049da1f","body":{"issued_at":"2026-10-11T19:50:38.386Z","kind":"signal","nonce":"0cb2a896a617a915afe7a490de43eaf2","payload":{"entry":{"type":"market"},"expires_at":"2026-10-12T07:50:38.386Z","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":"2532.57","targets":["2541.47","2548.15"]},"prev":"2ca83a927cea4db67a6fda5bc9e070519fee37123dd602a5dd7e5565d049da1f","provider":"demo-macd-momentum","seq":68,"v":1},"signer":null,"sig":null,"batch":{"root":"d88dbc5f8c716cac177febfa99f568c30e94e9cd22be28a0195cd27783f2ad1e","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-11T19:51:38.405Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970976},"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"]}