diff --git a/Package.swift b/Package.swift
index f654545cea2f13c6c8e6ce89cb9c9a5e942e5ff2..d07ef4c10f5de19de5e1382aa19049f473bf19cd 100644
--- a/Package.swift
+++ b/Package.swift
@@ -456,6 +456,7 @@ let package = Package(
                 .product(name: "DifferenceKit", package: "DifferenceKit"),
                 .product(name: "ScrollViewController", package: "ScrollViewController"),
                 .product(name: "XXClient", package: "elixxir-dapps-sdk-swift"),
+                .product(name: "XXMessengerClient", package: "elixxir-dapps-sdk-swift"),
             ]
         ),
         .testTarget(
diff --git a/Sources/App/DependencyRegistrator.swift b/Sources/App/DependencyRegistrator.swift
index 7cc24828d71c4e61893d51610986662b8366cf07..f1d31d5d61f2b5569afde8542631ed9128d252f0 100644
--- a/Sources/App/DependencyRegistrator.swift
+++ b/Sources/App/DependencyRegistrator.swift
@@ -284,7 +284,8 @@ extension PasswordStorage {
         )
         return PasswordStorage(
             save: { password in keychain[data: "password"] = password},
-            load: { try keychain[data: "password"] ?? { throw MissingPasswordError() }() }
+            load: { try keychain[data: "password"] ?? { throw MissingPasswordError() }() },
+            remove: { try keychain.remove("password") }
         )
     }()
 }
diff --git a/Sources/Keychain/KeychainHandler.swift b/Sources/Keychain/KeychainHandler.swift
index 6ac0d645d6def33360ee5ed0d0ab1e973a0487fc..26df90bdb133dffef5dae41cc126be53fe242606 100644
--- a/Sources/Keychain/KeychainHandler.swift
+++ b/Sources/Keychain/KeychainHandler.swift
@@ -10,6 +10,7 @@ public enum KeychainSFTP: String {
 public protocol KeychainHandling {
     func clear() throws
     func getPassword() throws -> Data?
+    func remove(_ key: String) throws
     func store(password pwd: Data) throws
 
     func get(key: KeychainSFTP) throws -> String?
@@ -24,6 +25,10 @@ public struct KeychainHandler: KeychainHandling {
         self.keychain = Keychain(service: "XXM")
     }
 
+    public func remove(_ key: String) throws {
+        try keychain.remove(key)
+    }
+
     public func clear() throws {
         try keychain.removeAll()
     }
diff --git a/Sources/Keychain/MockKeychainHandler.swift b/Sources/Keychain/MockKeychainHandler.swift
index 39d4a33ddb1e0e6d8a75d8b5a1ea980d8fb189bf..ea2af5d6467860b5c13d79f01dbdf223862115e1 100644
--- a/Sources/Keychain/MockKeychainHandler.swift
+++ b/Sources/Keychain/MockKeychainHandler.swift
@@ -4,6 +4,7 @@ public struct MockKeychainHandler: KeychainHandling {
     public init() {}
 
     public func clear() throws {}
+    public func remove(_ key: String) throws {}
     public func store(password pwd: Data) throws {}
     public func getPassword() throws -> Data? { Data() }
     public func get(key: KeychainSFTP) throws -> String? { nil }
diff --git a/Sources/LaunchFeature/LaunchViewModel.swift b/Sources/LaunchFeature/LaunchViewModel.swift
index 12b722f466eecc8c5310fc3f943679621ff45a1d..8bf83a2f83dcf3796dcb75aa7fa2747286918906 100644
--- a/Sources/LaunchFeature/LaunchViewModel.swift
+++ b/Sources/LaunchFeature/LaunchViewModel.swift
@@ -4,6 +4,7 @@ import Models
 import Combine
 import Defaults
 import XXModels
+import XXLogger
 import Keychain
 import Foundation
 import Permissions
@@ -106,6 +107,10 @@ final class LaunchViewModel {
 
             _ = try SetLogLevel.live(.trace)
 
+            RegisterLogWriter.live(.init(handle: {
+                XXLogger.live().debug($0)
+            }))
+
             guard let certPath = Bundle.module.path(forResource: "cmix.rip", ofType: "crt"),
                   let contactFilePath = Bundle.module.path(forResource: "udContact", ofType: "bin") else {
                 fatalError("Couldn't retrieve alternative UD credentials")
@@ -175,6 +180,11 @@ final class LaunchViewModel {
                         roundURL: "https://www.google.com.br",
                         fileTransferId: nil
                     ))
+
+                    if var contact = try? self.database.fetchContacts(.init(id: [$0.sender])).first {
+                        contact.isRecent = false
+                        try! self.database.saveContact(contact)
+                    }
                 })
             )
 
@@ -221,7 +231,8 @@ final class LaunchViewModel {
                 }
             }
         } catch {
-            print(">>> Initialization couldn't be completed: \(error.localizedDescription)")
+            let xxError = CreateUserFriendlyErrorMessage.live(error.localizedDescription)
+            hudSubject.send(.error(.init(content: xxError)))
         }
     }
 
diff --git a/Sources/LaunchFeature/Resources/udContact.bin b/Sources/LaunchFeature/Resources/udContact.bin
index eddc5d47220ef6ad9010c5bb0f9d53213bd87736..b2611d4124e7d083ad99cf37eba3810cc6d8926c 100644
--- a/Sources/LaunchFeature/Resources/udContact.bin
+++ b/Sources/LaunchFeature/Resources/udContact.bin
@@ -1 +1 @@
-<xxc(2)TMJw0XHBSzVPUAo/ZsAuD5DiOF1RH8uxZxUHW2KG9PYDkAZiB9kZo+Dl3a+leHJP1aP7KQtifEOGqQAxsBnOtd2nIe3/jw//LDqs8mZcL8wsMydDoFwycEZQIHg85L17q6u3pRMXcSfvFLBuL6H2HxP+U3Sox9YTgaPNK191opr14t03jfM7gaBcdbk9PE/hwUeotu3eTavqy4lFNIa917wZCDf+n9aGz9jB2q/axf0x+h0h1uVQD6xaAJD5gqyvCmECU/iCaYCbPUh+zFfSEymujIFWscZAJL6ocPn9DCYw80mbKpm0BDQRBm+EVqo4KVMsLqbx0hJJ8Vh5a8c9f+aiBXjlwnZJ2Z8DzxbsVg7VzJc5sn5Dl0ajrkzBdZBWbgOJEgN7nIdmb3gW7poVUR1JtRIctW3wS+7/qHmLZC1SQ+x3O+eEFmb5HrulsvsUkIkFKRPQguwql9HLDA00zqg5tuDzy5yqyP//xZY4SelSTMDO/pkOMP921LaXsRzBWMGCRWa/uzaDhIgnXVs2cyxM1K5jLwQml44QWAxxTGBX/EhYpMbHLAn4+QAAAgA7Nv4tnMt8oC0Ffog/appCEA==xxc>
+<xxc(2)7mbKFLE201WzH4SGxAOpHjjehwztIV+KGifi5L/PYPcDkAZiB9kZo+Dl3Vc7dD2SdZCFMOJVgwqGzfYRDkjc8RGEllBqNxq2sRRX09iQVef0kJQUgJCHNCOcvm6Ki0JJwvjLceyFh36iwK8oLbhLgqEZY86UScdACTyBCzBIab3ob5mBthYc3mheV88yq5PGF2DQ+dEvueUm+QhOSfwzppAJA/rpW9Wq9xzYcQzaqc3ztAGYfm2BBAHS7HVmkCbvZ/K07Xrl4EBPGHJYq12tWAN/C3mcbbBYUOQXyEzbSl/mO7sL3ORr0B4FMuqCi8EdlD6RO52pVhY+Cg6roRH1t5Ng1JxPt8Mv1yyjbifPhZ5fLKwxBz8UiFORfk0/jnhwgm25LRHqtNRRUlYXLvhv0HhqyYTUt17WNtCLATSVbqLrFGdy2EGadn8mP+kQNHp93f27d/uHgBNNe7LpuYCJMdWpoG6bOqmHEftxt0/MIQA8fTtTm3jJzv+7/QjZJDvQIv0SNdp8HFogpuwde+GuS4BcY7v5xz+ArGWcRR63ct2z83MqQEn9ODr1/gAAAgA7szRpDDQIdFUQo9mkWg8xBA==xxc>
\ No newline at end of file
diff --git a/Sources/SettingsFeature/ViewModels/AccountDeleteViewModel.swift b/Sources/SettingsFeature/ViewModels/AccountDeleteViewModel.swift
index 94869e07e57ac1b060335dca964c43b722fe5e12..851576795c1ad10bfea9980499591eb2613d5290 100644
--- a/Sources/SettingsFeature/ViewModels/AccountDeleteViewModel.swift
+++ b/Sources/SettingsFeature/ViewModels/AccountDeleteViewModel.swift
@@ -8,10 +8,12 @@ import Foundation
 import XXMessengerClient
 import DependencyInjection
 import Retry
+import XXModels
 
 final class AccountDeleteViewModel {
     @Dependency var messenger: Messenger
     @Dependency var keychain: KeychainHandling
+    @Dependency var database: Database
 
     @KeyObject(.username, defaultValue: nil) var username: String?
 
@@ -35,10 +37,20 @@ final class AccountDeleteViewModel {
             guard let self = self else { return }
 
             do {
+                print(">>> try self.cleanUD()")
                 try self.cleanUD()
-                try self.stopNetwork()
+
+                print(">>> try self.messenger.destroy()")
                 try self.messenger.destroy()
+
+                print(">>> try self.keychain.clear()")
                 try self.keychain.clear()
+
+                print(">>> try database.drop()")
+                try self.database.drop()
+
+                print(">>> try self.deleteDatabase()")
+
                 try self.deleteDatabase()
 
                 UserDefaults.resetStandardUserDefaults()
@@ -69,22 +81,6 @@ final class AccountDeleteViewModel {
         try messenger.ud.get()!.permanentDeleteAccount(username: fact)
     }
 
-    private func stopNetwork() throws {
-        let cMix = messenger.cMix.get()!
-
-        print(">>> Stopping network follower...")
-        try cMix.stopNetworkFollower()
-
-        retry(max: 10, retryStrategy: .delay(seconds: 2)) {
-            if cMix.networkFollowerStatus() != .stopped {
-                print(">>> Network still hasn't stopped. Its \(cMix.networkFollowerStatus())")
-                throw NSError.create("Gave up on stopping the network.")
-            }
-
-            print(">>> Network has stopped")
-        }
-    }
-
     private func deleteDatabase() throws {
         print(">>> Deleting database...")
 
diff --git a/client-ios.xcworkspace/xcshareddata/swiftpm/Package.resolved b/client-ios.xcworkspace/xcshareddata/swiftpm/Package.resolved
index cdfe1cbf5ce0aa3ed708268769239f3b4df26399..50525d0f451211b9644f60f113a59b006a55666c 100644
--- a/client-ios.xcworkspace/xcshareddata/swiftpm/Package.resolved
+++ b/client-ios.xcworkspace/xcshareddata/swiftpm/Package.resolved
@@ -105,7 +105,7 @@
       "location" : "https://git.xx.network/elixxir/elixxir-dapps-sdk-swift",
       "state" : {
         "branch" : "development",
-        "revision" : "8e3717558823ea713fd6b516cc2fcbef01d003ed"
+        "revision" : "15a7ab035a7c0b9031cf0fa977563b3a1a254647"
       }
     },
     {
@@ -319,8 +319,8 @@
       "kind" : "remoteSourceControl",
       "location" : "https://github.com/apple/swift-collections",
       "state" : {
-        "revision" : "48254824bb4248676bf7ce56014ff57b142b77eb",
-        "version" : "1.0.2"
+        "revision" : "f504716c27d2e5d4144fa4794b12129301d17729",
+        "version" : "1.0.3"
       }
     },
     {