diff --git a/keyserver/src/responders/user-responders.js b/keyserver/src/responders/user-responders.js
--- a/keyserver/src/responders/user-responders.js
+++ b/keyserver/src/responders/user-responders.js
@@ -309,6 +309,11 @@
   return response;
 }
 
+const signedIdentityKeysBlobValidator = tShape({
+  payload: t.String,
+  signature: t.String,
+});
+
 const logInRequestInputValidator = tShape({
   username: t.maybe(t.String),
   usernameOrEmail: t.maybe(t.union([tEmail, tOldValidUsername])),
@@ -319,6 +324,7 @@
   platformDetails: tPlatformDetails,
   source: t.maybe(t.enums.of(values(logInActionSources))),
   primaryIdentityPublicKey: t.maybe(tRegex(primaryIdentityPublicKeyRegex)),
+  signedIdentityKeysBlob: t.maybe(signedIdentityKeysBlobValidator),
 });
 
 async function logInResponder(
diff --git a/lib/actions/user-actions.js b/lib/actions/user-actions.js
--- a/lib/actions/user-actions.js
+++ b/lib/actions/user-actions.js
@@ -120,8 +120,7 @@
   ): ((logInInfo: LogInInfo) => Promise<LogInResult>) =>
   async logInInfo => {
     const watchedIDs = threadWatcher.getWatchedIDs();
-    const { logInActionSource, signedIdentityKeysBlob, ...restLogInInfo } =
-      logInInfo;
+    const { logInActionSource, ...restLogInInfo } = logInInfo;
 
     const response = await callServerEndpoint(
       'log_in',