@override String getPublicKey() { if (_cachedPublicKey != null) return _cachedPublicKey!; throw Exception('Use getPublicKeyAsync() first to cache the user pubkey'); }