{"format":"receipts-proof/1","hash":"846b70d7d22593a27108ef6309514ec7463bf7e63be8305895a845f43367169a","provider":"demo-macd-momentum","seq":3,"kind":"signal","issued_at":"2026-09-26T12:40:05.651Z","prev":"20e0fc648e7efc2eeb1792c0652b53ce4d74a49077331e0dc6c1dde70be6c931","body":{"issued_at":"2026-09-26T12:40:05.651Z","kind":"signal","nonce":"59f0e613c4b76c9c2ea8b5e06189def4","payload":{"entry":{"type":"market"},"expires_at":"2026-09-27T00:40:05.651Z","market":{"kind":"perp","symbol":"ETHUSDT","venue":"binance-usdm"},"note":"Demo bot: MACD cross with EMA(100) trend filter, 5m. Mechanical rule, not advice.","side":"short","stop":"2689.1","targets":["2683.98","2680.15"]},"prev":"20e0fc648e7efc2eeb1792c0652b53ce4d74a49077331e0dc6c1dde70be6c931","provider":"demo-macd-momentum","seq":3,"v":1},"signer":null,"sig":null,"batch":{"root":"846b70d7d22593a27108ef6309514ec7463bf7e63be8305895a845f43367169a","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-09-26T12:41:05.668Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":968682},"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"]}