{"format":"receipts-proof/1","hash":"15fd179a611ff3c0eecf95d6b3e1f327fd4c91cf90d43b34238dd8207c13d885","provider":"demo-macd-momentum","seq":78,"kind":"signal","issued_at":"2026-10-13T20:30:18.295Z","prev":"31fb173d2554dcf8a28d404a54029fdb0554f41c01139a78f35310558e2d4537","body":{"issued_at":"2026-10-13T20:30:18.295Z","kind":"signal","nonce":"99bc53d8f40d4bcb52a692173b513777","payload":{"entry":{"type":"market"},"expires_at":"2026-10-14T08:30:18.295Z","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":"2511.28","targets":["2502.36","2495.68"]},"prev":"31fb173d2554dcf8a28d404a54029fdb0554f41c01139a78f35310558e2d4537","provider":"demo-macd-momentum","seq":78,"v":1},"signer":null,"sig":null,"batch":{"root":"15fd179a611ff3c0eecf95d6b3e1f327fd4c91cf90d43b34238dd8207c13d885","index":0,"leaf_count":1,"proof":[],"sealed_at":"2026-10-13T20:30:24.034Z","opentimestamps":"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","chain_anchor":null,"bitcoin_block":971299},"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"]}