diff --git a/lib/shared/transforms/keyserver-store-transform.js b/lib/shared/transforms/keyserver-store-transform.js
new file mode 100644
--- /dev/null
+++ b/lib/shared/transforms/keyserver-store-transform.js
@@ -0,0 +1,83 @@
+// @flow
+
+import { createTransform } from 'redux-persist';
+import type { Transform } from 'redux-persist/es/types.js';
+
+import type {
+  KeyserverInfo,
+  KeyserverStore,
+} from '../../types/keyserver-types.js';
+import {
+  type ConnectionInfo,
+  defaultConnectionInfo,
+} from '../../types/socket-types.js';
+
+export type PersistedKeyserverInfo = $Diff<
+  KeyserverInfo,
+  {
+    +connection: ConnectionInfo,
+    +sessionID?: ?string,
+  },
+>;
+export type PersistedKeyserverStore = {
+  +keyserverInfos: { +[key: string]: PersistedKeyserverInfo },
+};
+
+function transformKeyserverInfoToPersistedKeyserverInfo(
+  keyserverInfo: KeyserverInfo,
+): PersistedKeyserverInfo {
+  const { connection, sessionID, ...rest } = keyserverInfo;
+  return rest;
+}
+
+function transformPersistedKeyserverInfoToKeyserverInfo(
+  persistedKeyserverInfo: PersistedKeyserverInfo,
+): KeyserverInfo {
+  return {
+    ...persistedKeyserverInfo,
+    connection: defaultConnectionInfo,
+    updatesCurrentAsOf: persistedKeyserverInfo.updatesCurrentAsOf ?? 0,
+  };
+}
+
+function transformKeyserverStoreToPersistedKeyserverStore(
+  state: KeyserverStore,
+): PersistedKeyserverStore {
+  const keyserverInfos: { [string]: PersistedKeyserverInfo } = {};
+  for (const key in state.keyserverInfos) {
+    keyserverInfos[key] = transformKeyserverInfoToPersistedKeyserverInfo(
+      state.keyserverInfos[key],
+    );
+  }
+  return {
+    ...state,
+    keyserverInfos,
+  };
+}
+
+function transformPersistedKeyserverStoreToKeyserverStore(
+  state: PersistedKeyserverStore,
+): KeyserverStore {
+  const keyserverInfos: { [string]: KeyserverInfo } = {};
+  for (const key in state.keyserverInfos) {
+    keyserverInfos[key] = transformPersistedKeyserverInfoToKeyserverInfo(
+      state.keyserverInfos[key],
+    );
+  }
+  return {
+    ...state,
+    keyserverInfos,
+  };
+}
+
+const keyserverStoreTransform: Transform = createTransform(
+  transformKeyserverStoreToPersistedKeyserverStore,
+  transformPersistedKeyserverStoreToKeyserverStore,
+  { whitelist: ['keyserverStore'] },
+);
+
+export {
+  transformKeyserverInfoToPersistedKeyserverInfo,
+  transformPersistedKeyserverInfoToKeyserverInfo,
+  keyserverStoreTransform,
+};
diff --git a/native/redux/persist.js b/native/redux/persist.js
--- a/native/redux/persist.js
+++ b/native/redux/persist.js
@@ -41,6 +41,7 @@
   getCommunity,
   assertAllThreadInfosAreLegacy,
 } from 'lib/shared/thread-utils.js';
+import { keyserverStoreTransform } from 'lib/shared/transforms/keyserver-store-transform.js';
 import {
   DEPRECATED_unshimMessageStore,
   unshimFunc,
@@ -48,10 +49,7 @@
 import { defaultEnabledApps } from 'lib/types/enabled-apps.js';
 import { defaultCalendarQuery } from 'lib/types/entry-types.js';
 import { defaultCalendarFilters } from 'lib/types/filter-types.js';
-import type {
-  KeyserverStore,
-  KeyserverInfo,
-} from 'lib/types/keyserver-types.js';
+import type { KeyserverInfo } from 'lib/types/keyserver-types.js';
 import {
   messageTypes,
   type MessageType,
@@ -68,10 +66,7 @@
   ReportStore,
   ClientReportCreationRequest,
 } from 'lib/types/report-types.js';
-import {
-  defaultConnectionInfo,
-  type ConnectionInfo,
-} from 'lib/types/socket-types.js';
+import { defaultConnectionInfo } from 'lib/types/socket-types.js';
 import { defaultGlobalThemeInfo } from 'lib/types/theme-types.js';
 import type {
   ClientDBThreadInfo,
@@ -1078,41 +1073,6 @@
   { whitelist: ['reportStore'] },
 );
 
-type PersistedKeyserverInfo = $Diff<
-  KeyserverInfo,
-  { +connection: ConnectionInfo },
->;
-type PersistedKeyserverStore = {
-  +keyserverInfos: { +[key: string]: PersistedKeyserverInfo },
-};
-const keyserverStoreTransform: Transform = createTransform(
-  (state: KeyserverStore): PersistedKeyserverStore => {
-    const keyserverInfos: { [string]: PersistedKeyserverInfo } = {};
-    for (const key in state.keyserverInfos) {
-      const { connection, ...rest } = state.keyserverInfos[key];
-      keyserverInfos[key] = rest;
-    }
-    return {
-      ...state,
-      keyserverInfos,
-    };
-  },
-  (state: PersistedKeyserverStore): KeyserverStore => {
-    const keyserverInfos: { [string]: KeyserverInfo } = {};
-    for (const key in state.keyserverInfos) {
-      keyserverInfos[key] = {
-        ...state.keyserverInfos[key],
-        connection: { ...defaultConnectionInfo },
-      };
-    }
-    return {
-      ...state,
-      keyserverInfos,
-    };
-  },
-  { whitelist: ['keyserverStore'] },
-);
-
 const persistConfig = {
   key: 'root',
   storage: AsyncStorage,
diff --git a/web/redux/persist.js b/web/redux/persist.js
--- a/web/redux/persist.js
+++ b/web/redux/persist.js
@@ -1,28 +1,18 @@
 // @flow
 
 import invariant from 'invariant';
-import {
-  getStoredState,
-  purgeStoredState,
-  createTransform,
-} from 'redux-persist';
+import { getStoredState, purgeStoredState } from 'redux-persist';
 import storage from 'redux-persist/es/storage/index.js';
-import type { Transform } from 'redux-persist/es/types.js';
 import type { PersistConfig } from 'redux-persist/src/types.js';
 
 import {
   createAsyncMigrate,
   type StorageMigrationFunction,
 } from 'lib/shared/create-async-migrate.js';
-import type {
-  KeyserverInfo,
-  KeyserverStore,
-} from 'lib/types/keyserver-types.js';
+import { keyserverStoreTransform } from 'lib/shared/transforms/keyserver-store-transform.js';
+import type { KeyserverInfo } from 'lib/types/keyserver-types.js';
 import { cookieTypes } from 'lib/types/session-types.js';
-import {
-  defaultConnectionInfo,
-  type ConnectionInfo,
-} from 'lib/types/socket-types.js';
+import { defaultConnectionInfo } from 'lib/types/socket-types.js';
 import { defaultGlobalThemeInfo } from 'lib/types/theme-types.js';
 import { parseCookies } from 'lib/utils/cookie-utils.js';
 import { isDev } from 'lib/utils/dev-utils.js';
@@ -247,46 +237,6 @@
   return newStorage;
 };
 
-type PersistedKeyserverInfo = $Diff<
-  KeyserverInfo,
-  {
-    +connection: ConnectionInfo,
-    +sessionID?: ?string,
-  },
->;
-type PersistedKeyserverStore = {
-  +keyserverInfos: { +[key: string]: PersistedKeyserverInfo },
-};
-const keyserverStoreTransform: Transform = createTransform(
-  (state: KeyserverStore): PersistedKeyserverStore => {
-    const keyserverInfos: { [string]: PersistedKeyserverInfo } = {};
-    for (const key in state.keyserverInfos) {
-      const { connection, sessionID, ...rest } = state.keyserverInfos[key];
-      keyserverInfos[key] = rest;
-    }
-    return {
-      ...state,
-      keyserverInfos,
-    };
-  },
-  (state: PersistedKeyserverStore): KeyserverStore => {
-    const keyserverInfos: { [string]: KeyserverInfo } = {};
-    for (const key in state.keyserverInfos) {
-      keyserverInfos[key] = {
-        ...state.keyserverInfos[key],
-        connection: { ...defaultConnectionInfo },
-        sessionID: null,
-        updatesCurrentAsOf: state.keyserverInfos[key].updatesCurrentAsOf ?? 0,
-      };
-    }
-    return {
-      ...state,
-      keyserverInfos,
-    };
-  },
-  { whitelist: ['keyserverStore'] },
-);
-
 const persistConfig: PersistConfig = {
   key: rootKey,
   storage: commReduxStorageEngine,