docs: async def _verkey_for(self, target: str) -> str:
          """
          Given a DID, retrieve its verification key, looking in wallet, then pool.
          Given a verification key or None, return input.
  
          Raise WalletState if the wallet is closed. Given a recipient DID not in the wallet,
          raise AbsentPool if the instance has no pool or ClosedPool if its pool is closed.
          If no such verification key is on the ledger, raise AbsentNym.
  
          :param target: verification key, or DID to resolve to such
          :return: verification key
          """
  
          LOGGER.debug('BaseAnchor._verkey_for >>> target: %s', target)
  
          rv = target
          if rv is None or not ok_did(rv):  # it's None or already a verification key
              LOGGER.debug('BaseAnchor._verkey_for <<< %s', rv)
              return rv
  
          if self.wallet.handle:
              try:
                  rv = await did.key_for_local_did(self.wallet.handle, target)
                  LOGGER.info('Anchor %s got verkey for DID %s from wallet', self.name, target)
                  LOGGER.debug('BaseAnchor._verkey_for <<< %s', rv)
                  return rv
              except IndyError as x_indy:
                  if x_indy.error_code != ErrorCode.WalletItemNotFound:  # on not found, try the pool
                      LOGGER.debug(
                          'BaseAnchor._verkey_for <!< key lookup for local DID %s raised indy error code %s',
                          target,
                          x_indy.error_code)
                      raise
  
          nym = json.loads(await self.get_nym(target))
          if not nym:
              LOGGER.debug(
                  'BaseAnchor._verkey_for <!< Wallet %s closed and ledger has no cryptonym for DID %s',
                  self.name,
                  target)
              raise AbsentNym('Wallet {} closed, and ledger has no cryptonym for DID {}'.format(self.name, target))
  
          rv = json.loads(await self.get_nym(target))['verkey']
          LOGGER.info('Anchor %s got verkey for DID %s from pool %s', self.name, target, self.pool.name)
  
          LOGGER.debug('BaseAnchor._verkey_for <<< %s', rv)
          return rv