diff --git a/native/backup/use-client-backup.js b/native/backup/use-client-backup.js
--- a/native/backup/use-client-backup.js
+++ b/native/backup/use-client-backup.js
@@ -16,6 +16,7 @@
 
 type ClientBackup = {
   +uploadBackupProtocol: () => Promise<void>,
+  +createUserKeysBackup: () => Promise<void>,
   +retrieveLatestBackupInfo: () => Promise<LatestBackupInfo>,
 };
 
@@ -51,6 +52,15 @@
     console.info('Backup uploaded.');
   }, [loggedIn, currentUserID, currentUserInfo, getBackupSecret]);
 
+  const createUserKeysBackup = React.useCallback(async () => {
+    if (!loggedIn || !currentUserID) {
+      throw new Error('Attempt to upload User Keys for not logged in user.');
+    }
+
+    const backupSecret = await getBackupSecret();
+    await commCoreModule.createUserKeysBackup(backupSecret);
+  }, [loggedIn, currentUserID, getBackupSecret]);
+
   const retrieveLatestBackupInfo = React.useCallback(async () => {
     if (!loggedIn || !currentUserID || !currentUserInfo?.username) {
       throw new Error('Attempt to restore backup for not logged in user.');
@@ -69,9 +79,10 @@
   return React.useMemo(
     () => ({
       uploadBackupProtocol,
+      createUserKeysBackup,
       retrieveLatestBackupInfo,
     }),
-    [retrieveLatestBackupInfo, uploadBackupProtocol],
+    [retrieveLatestBackupInfo, uploadBackupProtocol, createUserKeysBackup],
   );
 }
 
diff --git a/native/profile/backup-menu.react.js b/native/profile/backup-menu.react.js
--- a/native/profile/backup-menu.react.js
+++ b/native/profile/backup-menu.react.js
@@ -39,7 +39,11 @@
     state => state.localSettings.isBackupEnabled,
   );
 
-  const { uploadBackupProtocol, retrieveLatestBackupInfo } = useClientBackup();
+  const {
+    uploadBackupProtocol,
+    retrieveLatestBackupInfo,
+    createUserKeysBackup,
+  } = useClientBackup();
 
   const uploadBackup = React.useCallback(async () => {
     let message = 'Success';
@@ -52,6 +56,17 @@
     Alert.alert('Upload protocol result', message);
   }, [uploadBackupProtocol]);
 
+  const uploadUserKeys = React.useCallback(async () => {
+    let message = 'Success';
+    try {
+      await createUserKeysBackup();
+    } catch (e) {
+      message = `User Keys upload error: ${String(getMessageForException(e))}`;
+      console.error(message);
+    }
+    Alert.alert('Upload User Keys result', message);
+  }, [createUserKeysBackup]);
+
   const testRestoreForPasswordUser = React.useCallback(async () => {
     let message = 'success';
     try {
@@ -161,6 +176,17 @@
           <Text style={styles.submenuText}>Test backup upload protocol</Text>
         </Button>
       </View>
+      <View style={styles.section}>
+        <Button
+          onPress={uploadUserKeys}
+          style={styles.row}
+          iosFormat="highlight"
+          iosHighlightUnderlayColor={colors.panelIosHighlightUnderlay}
+          iosActiveOpacity={0.85}
+        >
+          <Text style={styles.submenuText}>Test User Keys upload</Text>
+        </Button>
+      </View>
       <View style={styles.section}>
         <Button
           onPress={onPressRestoreButton}