{"format":"receipts-proof/1","hash":"42488f2f7f99fddc7afa559fbe4c6bcfe80ae6a196b715e98fecb49906578266","provider":"demo-macd-momentum","seq":85,"kind":"signal","issued_at":"2026-10-14T02:05:18.871Z","prev":"b76ca856478715f59b6ef09d8794a3466dfaa533acedbb7cb0987ec7bc7d71e5","body":{"issued_at":"2026-10-14T02:05:18.871Z","kind":"signal","nonce":"1e834ab76bc8788ebf743c95a1388b7b","payload":{"entry":{"type":"market"},"expires_at":"2026-10-14T14:05:18.871Z","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":"2499.93","targets":["2513.17","2523.09"]},"prev":"b76ca856478715f59b6ef09d8794a3466dfaa533acedbb7cb0987ec7bc7d71e5","provider":"demo-macd-momentum","seq":85,"v":1},"signer":null,"sig":null,"batch":{"root":"42488f2f7f99fddc7afa559fbe4c6bcfe80ae6a196b715e98fecb49906578266","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-14T02:10:24.584Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971337},"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"]}