diff --git a/lib/keyserver-conn/keyserver-call-infos.js b/lib/keyserver-conn/keyserver-call-infos.js
new file mode 100644
--- /dev/null
+++ b/lib/keyserver-conn/keyserver-call-infos.js
@@ -0,0 +1,56 @@
+// @flow
+
+import { createSelector } from 'reselect';
+
+import { useDerivedObject } from '../hooks/objects.js';
+import type { PlatformDetails } from '../types/device-types.js';
+import type { KeyserverInfo } from '../types/keyserver-types.js';
+
+export type KeyserverInfoPartial = $ReadOnly<{
+  ...Partial<KeyserverInfo>,
+  +urlPrefix: $PropertyType<KeyserverInfo, 'urlPrefix'>,
+}>;
+
+export type KeyserverCallInfo = {
+  +cookie: ?string,
+  +urlPrefix: string,
+  +sessionID: ?string,
+  +isSocketConnected: boolean,
+  +lastCommunicatedPlatformDetails: ?PlatformDetails,
+};
+
+const createKeyserverCallSelector: () => KeyserverInfoPartial => KeyserverCallInfo =
+  () =>
+    createSelector(
+      (keyserverInfo: KeyserverInfoPartial) => keyserverInfo.cookie,
+      (keyserverInfo: KeyserverInfoPartial) => keyserverInfo.urlPrefix,
+      (keyserverInfo: KeyserverInfoPartial) => keyserverInfo.sessionID,
+      (keyserverInfo: KeyserverInfoPartial) =>
+        keyserverInfo.connection?.status === 'connected',
+      (keyserverInfo: KeyserverInfoPartial) =>
+        keyserverInfo.lastCommunicatedPlatformDetails,
+      (
+        cookie: ?string,
+        urlPrefix: string,
+        sessionID: ?string,
+        isSocketConnected: boolean,
+        lastCommunicatedPlatformDetails: ?PlatformDetails,
+      ) => ({
+        cookie,
+        urlPrefix,
+        sessionID,
+        isSocketConnected,
+        lastCommunicatedPlatformDetails,
+      }),
+    );
+
+function useKeyserverCallInfos(keyserverInfos: {
+  +[keyserverID: string]: KeyserverInfoPartial,
+}): { +[keyserverID: string]: KeyserverCallInfo } {
+  return useDerivedObject<KeyserverInfoPartial, KeyserverCallInfo>(
+    keyserverInfos,
+    createKeyserverCallSelector,
+  );
+}
+
+export { useKeyserverCallInfos };
diff --git a/lib/utils/keyserver-call.js b/lib/utils/keyserver-call.js
--- a/lib/utils/keyserver-call.js
+++ b/lib/utils/keyserver-call.js
@@ -2,19 +2,17 @@
 
 import _memoize from 'lodash/memoize.js';
 import * as React from 'react';
-import { createSelector } from 'reselect';
 
-import type {
-  CallServerEndpoint,
-  CallServerEndpointOptions,
-} from './call-server-endpoint.js';
+import type { CallServerEndpointOptions } from './call-server-endpoint.js';
 import { promiseAll } from './promises.js';
 import { useSelector, useDispatch } from './redux-utils.js';
-import { useDerivedObject } from '../hooks/objects.js';
 import { useCallKeyserverEndpointContext } from '../keyserver-conn/call-keyserver-endpoint-provider.react.js';
-import type { PlatformDetails } from '../types/device-types.js';
+import {
+  useKeyserverCallInfos,
+  type KeyserverInfoPartial,
+  type KeyserverCallInfo,
+} from '../keyserver-conn/keyserver-call-infos.js';
 import type { Endpoint } from '../types/endpoints.js';
-import type { KeyserverInfo } from '../types/keyserver-types.js';
 import type { Dispatch } from '../types/redux-types.js';
 import type { CurrentUserInfo } from '../types/user-types.js';
 
@@ -32,53 +30,6 @@
   allKeyserverIDs: $ReadOnlyArray<string>,
 ) => Args => Promise<Return>;
 
-type KeyserverInfoPartial = $ReadOnly<{
-  ...Partial<KeyserverInfo>,
-  +urlPrefix: $PropertyType<KeyserverInfo, 'urlPrefix'>,
-}>;
-
-type KeyserverCallInfo = {
-  +cookie: ?string,
-  +urlPrefix: string,
-  +sessionID: ?string,
-  +isSocketConnected: boolean,
-  +lastCommunicatedPlatformDetails: ?PlatformDetails,
-};
-
-const createKeyserverCallSelector: () => KeyserverInfoPartial => KeyserverCallInfo =
-  () =>
-    createSelector(
-      (keyserverInfo: KeyserverInfoPartial) => keyserverInfo.cookie,
-      (keyserverInfo: KeyserverInfoPartial) => keyserverInfo.urlPrefix,
-      (keyserverInfo: KeyserverInfoPartial) => keyserverInfo.sessionID,
-      (keyserverInfo: KeyserverInfoPartial) =>
-        keyserverInfo.connection?.status === 'connected',
-      (keyserverInfo: KeyserverInfoPartial) =>
-        keyserverInfo.lastCommunicatedPlatformDetails,
-      (
-        cookie: ?string,
-        urlPrefix: string,
-        sessionID: ?string,
-        isSocketConnected: boolean,
-        lastCommunicatedPlatformDetails: ?PlatformDetails,
-      ) => ({
-        cookie,
-        urlPrefix,
-        sessionID,
-        isSocketConnected,
-        lastCommunicatedPlatformDetails,
-      }),
-    );
-
-function useKeyserverCallInfos(keyserverInfos: {
-  +[keyserverID: string]: KeyserverInfoPartial,
-}): { +[keyserverID: string]: KeyserverCallInfo } {
-  return useDerivedObject<KeyserverInfoPartial, KeyserverCallInfo>(
-    keyserverInfos,
-    createKeyserverCallSelector,
-  );
-}
-
 type BindCallKeyserverSelector = <Args: mixed, Return>(
   keyserverCall: ActionFunc<Args, Return>,
 ) => Args => Promise<Return>;
@@ -89,10 +40,11 @@
 ): BindCallKeyserverSelector {
   const { createCallSingleKeyserverEndpointSelector } =
     useCallKeyserverEndpointContext();
-  const getCallSingleKeyserverEndpointSelector = React.useMemo(
-    () => _memoize(createCallSingleKeyserverEndpointSelector),
-    [createCallSingleKeyserverEndpointSelector],
-  );
+  const getCallSingleKeyserverEndpointSelector: typeof createCallSingleKeyserverEndpointSelector =
+    React.useMemo(
+      () => _memoize(createCallSingleKeyserverEndpointSelector),
+      [createCallSingleKeyserverEndpointSelector],
+    );
   return React.useMemo(
     () =>
       _memoize(
@@ -104,7 +56,7 @@
             requests: { +[keyserverID: string]: ?{ +[string]: mixed } },
             options?: ?CallServerEndpointOptions,
           ) => {
-            const bindCallKeyserverEndpoint = (keyserverID: string) => {
+            const makeCallToSingleKeyserver = (keyserverID: string) => {
               const {
                 cookie,
                 urlPrefix,
@@ -131,9 +83,9 @@
               );
             };
 
-            const promises: { [string]: Promise<CallServerEndpoint> } = {};
+            const promises: { [string]: Promise<Object> } = {};
             for (const keyserverID in requests) {
-              promises[keyserverID] = bindCallKeyserverEndpoint(keyserverID);
+              promises[keyserverID] = makeCallToSingleKeyserver(keyserverID);
             }
             return promiseAll(promises);
           };