`keypair.dart` only derives the public address. Add a `sign()` using Ed25519 (or delegate to crypto utils) so the keypair is usable end-to-end.