{"format":"receipts-proof/1","hash":"8bb8a18becc4df8ee9cd3efb821e191e7fae81c83eef64f46e86579d5a5ccd2d","provider":"demo-macd-momentum","seq":30,"kind":"signal","issued_at":"2026-10-01T14:10:21.131Z","prev":"bb9e391037ab8285f21360308a01fccf4cdd905d1896291258595403d27ca52e","body":{"issued_at":"2026-10-01T14:10:21.131Z","kind":"signal","nonce":"fb894f6ed8dc0936ca584fab0c76d4ae","payload":{"entry":{"type":"market"},"expires_at":"2026-10-02T02:10:21.131Z","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":"2686.35","targets":["2711.09","2729.65"]},"prev":"bb9e391037ab8285f21360308a01fccf4cdd905d1896291258595403d27ca52e","provider":"demo-macd-momentum","seq":30,"v":1},"signer":null,"sig":null,"batch":{"root":"8bb8a18becc4df8ee9cd3efb821e191e7fae81c83eef64f46e86579d5a5ccd2d","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-01T14:11:19.791Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":969456},"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"]}