         self.walletManager = try? WalletManager(store: self.store, dbPath: nil)
         let _ = self.walletManager?.wallet //attempt to initialize wallet
         DispatchQueue.main.async {
-            self.didInitWallet()
+            if !self.hasPerformedWalletDependentInitialization {
+                self.didInitWallet()
+            }
         }
     }
 


    private func didInitWallet() {
        guard let walletManager = walletManager else { assert(false, "WalletManager should exist!"); return }
        store.perform(action: PinLength.set(walletManager.pinLength))
        walletCoordinator = WalletCoordinator(walletManager: walletManager, store: store)
        modalPresenter = ModalPresenter(store: store, walletManager: walletManager, window: window, apiClient: noAuthApiClient)
        exchangeUpdater = ExchangeUpdater(store: store, walletManager: walletManager)
        feeUpdater = FeeUpdater(walletManager: walletManager, store: store)
        startFlowController = StartFlowPresenter(store: store, walletManager: walletManager, rootViewController: window.rootViewController!)
        accountViewController?.walletManager = walletManager
        defaultsUpdater = UserDefaultsUpdater(walletManager: walletManager)
        urlController = URLController(store: self.store, walletManager: walletManager)

            }
        }
        updateAssetBundles()
        if !hasPerformedWalletDependentInitialization && walletManager != nil {
            didInitWallet()
        }
    }

    private func setup() {
