{"format":"receipts-proof/1","hash":"44f7023e389fa77ec125e25fc9c70bf265af9077091c8ce5f50bd2691a2913e6","provider":"demo-macd-momentum","seq":64,"kind":"signal","issued_at":"2026-10-10T10:55:43.791Z","prev":"a906cab9c3ae9c67bc92ec115a514e29b1bd799005d4e61d43b25fd0929a7c3a","body":{"issued_at":"2026-10-10T10:55:43.791Z","kind":"signal","nonce":"9aed5b530416693ff05a40ccd8ef2f71","payload":{"entry":{"type":"market"},"expires_at":"2026-10-10T22:55:43.791Z","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":"2494.14","targets":["2497.54","2500.1"]},"prev":"a906cab9c3ae9c67bc92ec115a514e29b1bd799005d4e61d43b25fd0929a7c3a","provider":"demo-macd-momentum","seq":64,"v":1},"signer":null,"sig":null,"batch":{"root":"44f7023e389fa77ec125e25fc9c70bf265af9077091c8ce5f50bd2691a2913e6","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-10T10:56:43.805Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":970756},"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"]}