diff --git a/lib/selectors/user-selectors.js b/lib/selectors/user-selectors.js
--- a/lib/selectors/user-selectors.js
+++ b/lib/selectors/user-selectors.js
@@ -260,6 +260,22 @@
         .flat(),
   );
 
+const getAllPeerUserIDAndDeviceIDs: (
+  state: BaseAppState<>,
+) => $ReadOnlyArray<{ +userID: string, +deviceID: string }> = createSelector(
+  (state: BaseAppState<>) => state.auxUserStore.auxUserInfos,
+  (
+    auxUserInfos: AuxUserInfos,
+  ): $ReadOnlyArray<{ +userID: string, +deviceID: string }> =>
+    entries(auxUserInfos).flatMap(
+      ([userID, { deviceList }]: [string, AuxUserInfo]) =>
+        deviceList?.devices.map(deviceID => ({
+          userID,
+          deviceID,
+        })) ?? [],
+    ),
+);
+
 export {
   userIDsToRelativeUserInfos,
   getRelativeMemberInfos,
@@ -273,4 +289,5 @@
   usersWithMissingDeviceListSelector,
   getForeignPeerDevices,
   getAllPeerDevices,
+  getAllPeerUserIDAndDeviceIDs,
 };