Clerk logo

Clerk Docs

Ctrl + K
Go to clerk.devGet API keys

Progressive Sign Up (Beta)

Introducing a new, better Sign Up flow


Progressive Sign Up is a new algorithm for the Sign Up flow, that aims to improve upon the previous implementation by handling more scenarios and adhering more strictly to the authentication settings of the instance. Additionally, it allows Web3 authentication to be used together with the regular authentication settings.

It is currently in beta and can be enabled using the Instance Settings endpoint from the Backend API.

Progressive Sign Up involves changes in how the Frontend API behaves. That said, there are no changes in the keys of the response payloads or any new types introduced. The changes only apply to some existing fields of Sign Up object, namely missing_fields, unverified_fields and status. The possible values of those fields also haven’t changed - what changes is when each of those values is returned.

Let’s dive in!

What’s changed

On a high level, Progressive Sign Up contains the following changes:

  • When someone was signing up using a Social provider (OAuth), even if the ‘name’ and ‘phone’ were marked as ‘required’, they were ignored and the user would sign up successfully but have an empty name and phone number. Now they have to be collected before the sign-up can complete.
  • When someone was signing up using a Social provider (OAuth) and the provider did not provide a verified email for the user, the process would result in an error. Now, this case will be handled gracefully: email has to be provided and verified, before the sign-up can complete.
  • Web3 could not be used in combination with any of the regular settings (i.e. email, name, phone number, passwords). Progressive Sign Up adds support for using Web3 together with these.
  • Emails and phones could not be marked as required/optional. In Progressive Sign Up they can, and the setting will be honored during Sign Up flows.

On a technical level, what changes is that the values of the following fields, will more accurately represent the current state of the sign-up, adhering to the instance’s authentication requirements. This practically means:

  • sign_up.status may now be set to missing_requirements after a successful OAuth or Web3 flow
  • sign_up.missing_fields may be non-empty after a successful OAuth or Web3 flow
  • sign_up.unverified_fields may be non-empty after a successful OAuth or Web3 flow

Migrate to Progressive Sign Up

Before you enable Progressive Sign Up, make sure you’re on Clerk.js version 3.13.0 or later.

Progressive Sign Up is a beta feature and can be toggled on via an instance setting. You can enable it using the Instance Settings from the Backend API.

If you're using the prebuilt UI components, there are no changes required on your behalf.

If you're implementing a custom flow, you should cater for the case in which, after a successful OAuth or Web3 flow, the sign-up might still be in a pending state. This essentially means that you should peek into sign_up.status, sign_up.missing_fields and sign_up.unverified_fields and act accordingly.

For more information on how these fields behave, refer to Sign Up flow.


We encourage you to try the new sign up flow out and we are more than happy to assist you if you encounter any issues.

Your feedback is extremely important to us - please reach out via the following communication channels, in case you have questions, suggestions or issues.

Was this helpful?

Clerk © 2022