diff --git a/flutter/lib/api/api_client.dart b/flutter/lib/api/api_client.dart
index a2e0d58..cc474a9 100644
--- a/flutter/lib/api/api_client.dart
+++ b/flutter/lib/api/api_client.dart
@@ -179,6 +179,16 @@ class APIClient {
     );
   }
 
+  static Future<User> deleteUser(TokenSource auth, String uid) async {
+    return await _request(
+      name: 'deleteUser',
+      method: 'DELETE',
+      relURL: 'users/$uid',
+      fn: User.fromJson,
+      authToken: auth.getToken(),
+    );
+  }
+
   static Future<Client> addClient(TokenSource auth, String fcmToken, String agentModel, String agentVersion, String? name, String clientType) async {
     return await _request(
       name: 'addClient',
diff --git a/flutter/lib/pages/account/account.dart b/flutter/lib/pages/account/account.dart
index 4f23ee0..7e9def0 100644
--- a/flutter/lib/pages/account/account.dart
+++ b/flutter/lib/pages/account/account.dart
@@ -503,7 +503,22 @@ class _AccountRootPageState extends State<AccountRootPage> {
   }
 
   void _deleteAccount() async {
-    // TODO
+    final acc = AppAuth();
+    if (!acc.isAuth()) return;
+
+    try {
+      await APIClient.deleteUser(acc, acc.userID!);
+
+      Toaster.info('Logout', 'Successfully logged out');
+
+      acc.clear();
+      await acc.save();
+
+      //TODO clear messages/channels/etc in open views
+    } catch (exc, trace) {
+      Toaster.error("Error", 'Failed to delete user');
+      ApplicationLog.error('Failed to delete user: ' + exc.toString(), trace: trace);
+    }
   }
 
   void _changeUsername() async {