     let walletManager: WalletManager
     let store: Store
     var tempBitIDKeys = [String: BRKey]() // this should only ever be mutated from the main thread
+    private var tempBitIDResponses = [String: Int]()
     private var isPresentingAuth = false
 
     init(walletManager: WalletManager, store: Store) {

                      let bitidIndex = Int(bii) else {
                return BRHTTPResponse(request: request, code: 400)
            }
            let asyncResp = BRHTTPResponse(async: request)
            DispatchQueue.main.sync {
                CFRunLoopPerformBlock(RunLoop.main.getCFRunLoop(), CFRunLoopMode.commonModes.rawValue) {

                    } else {
                        let prompt = bitidUrl.host ?? bitidUrl.description
                        self.isPresentingAuth = true
                        if UserDefaults.isTouchIdEnabled {
                            asyncResp.provide(200, json: ["error": "proxy-shutdown"])
                        }
                        self.store.trigger(name: .authenticateForBitId(prompt, { [weak self] result in
                            self?.isPresentingAuth = false
                            switch result {
                            case .success:
