# SignUpFuture object

The `SignUpFuture` object holds the state of the current sign-up attempt and provides methods to drive custom sign-up flows, including email/phone verification, password, SSO, ticket-based, and Web3-based account creation.

## Example

See the [custom flow guides](https://clerk.com/docs/guides/development/custom-flows/overview.md?sdk=vue) for comprehensive examples of using the `SignUpFuture` object to build custom user interfaces with the Clerk API.

## Properties

| Property                                         | Type                                                                                                                                                                                                                                                                                             | Description                                                                                                                                                                                                                                                                                                                                                             |
| ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <a id="abandonat"></a> `abandonAt`               | `null | number`                                                                                                                                                                                                                                                                       | The epoch numerical time when the sign-up was abandoned by the user.                                                                                                                                                                                                                                                                                                    |
| <a id="createdsessionid"></a> `createdSessionId` | `null | string`                                                                                                                                                                                                                                                                       | The identifier of the newly-created session. This attribute is populated only when the sign-up is complete.                                                                                                                                                                                                                                                             |
| <a id="createduserid"></a> `createdUserId`       | `null | string`                                                                                                                                                                                                                                                                       | The identifier of the newly-created user. This attribute is populated only when the sign-up is complete.                                                                                                                                                                                                                                                                |
| <a id="emailaddress"></a> `emailAddress`         | `null | string`                                                                                                                                                                                                                                                                       | The `emailAddress` supplied to the current sign-up. Only supported if [email address](https://clerk.com/docs/guides/configure/auth-strategies/sign-up-sign-in-options.md?sdk=vue#email) is enabled in the instance settings.                                                                                                                                            |
| <a id="existingsession"></a> `existingSession?`  | `{ sessionId: string; }`                                                                                                                                                                                                                                                              | Indicates that the sign-up was not able to create a new session because the identifier already exists in an existing session.                                                                                                                                                                                                                                           |
| `existingSession.sessionId`                      | `string`                                                                                                                                                                                                                                                                                         | The ID of the existing session.                                                                                                                                                                                                                                                                                                                                         |
| <a id="firstname"></a> `firstName`               | `null | string`                                                                                                                                                                                                                                                                       | The `firstName` supplied to the current sign-up. Only supported if [First and last name](https://clerk.com/docs/guides/configure/auth-strategies/sign-up-sign-in-options.md?sdk=vue#user-model) is enabled in the instance settings.                                                                                                                                    |
| <a id="haspassword"></a> `hasPassword`           | `boolean`                                                                                                                                                                                                                                                                                        | The value of this attribute is true if a password was supplied to the current sign-up. Only supported if [password](https://clerk.com/docs/guides/configure/auth-strategies/sign-up-sign-in-options.md?sdk=vue#password) is enabled in the instance settings.                                                                                                           |
| <a id="id"></a> `id?`                            | `string`                                                                                                                                                                                                                                                                                         | The unique identifier of the current sign-up.                                                                                                                                                                                                                                                                                                                           |
| <a id="istransferable"></a> `isTransferable`     | `boolean`                                                                                                                                                                                                                                                                                        | Indicates that there is a matching user for provided identifier, and that the sign-up can be transferred to a sign-in.                                                                                                                                                                                                                                                  |
| <a id="lastname"></a> `lastName`                 | `null | string`                                                                                                                                                                                                                                                                       | The `lastName` supplied to the current sign-up. Only supported if [First and last name](https://clerk.com/docs/guides/configure/auth-strategies/sign-up-sign-in-options.md?sdk=vue#user-model) is enabled in the instance settings.                                                                                                                                     |
| <a id="legalacceptedat"></a> `legalAcceptedAt`   | `null | number`                                                                                                                                                                                                                                                                       | The epoch numerical time when the user agreed to the [legal compliance](https://clerk.com/docs/guides/secure/legal-compliance.md?sdk=vue) documents.                                                                                                                                                                                                                    |
| <a id="locale"></a> `locale`                     | `null | string`                                                                                                                                                                                                                                                                       | The locale of the user in [BCP 47](https://developer.mozilla.org/en-US/docs/Glossary/BCP_47_language_tag) format (e.g., "en-US", "fr-FR"), or `null` if not set.                                                                                                                                                                                                        |
| <a id="missingfields"></a> `missingFields`       | <code>(<a href="https://clerk.com/docs/vue/reference/types/sso.md#o-auth-strategy">OAuthStrategy</a> | "password" | "email_address" | "phone_number" | "username" | "first_name" | "last_name" | "web3_wallet" | "enterprise_sso" | "legal_accepted" | "email_address_or_phone_number")[]</code> | An array of all the fields whose values are not supplied yet but they are mandatory in order for a sign-up to be marked as complete.                                                                                                                                                                                                                                    |
| <a id="optionalfields"></a> `optionalFields`     | <code>(<a href="https://clerk.com/docs/vue/reference/types/sso.md#o-auth-strategy">OAuthStrategy</a> | "password" | "email_address" | "phone_number" | "username" | "first_name" | "last_name" | "web3_wallet" | "enterprise_sso" | "legal_accepted" | "email_address_or_phone_number")[]</code> | An array of all the fields that can be supplied to the sign-up, but their absence does not prevent the sign-up from being marked as complete.                                                                                                                                                                                                                           |
| <a id="phonenumber"></a> `phoneNumber`           | `null | string`                                                                                                                                                                                                                                                                       | The `phoneNumber` supplied to the current sign-up in E.164 format. Only supported if [phone number](https://clerk.com/docs/guides/configure/auth-strategies/sign-up-sign-in-options.md?sdk=vue#phone) is enabled in the instance settings.                                                                                                                              |
| <a id="requiredfields"></a> `requiredFields`     | <code>(<a href="https://clerk.com/docs/vue/reference/types/sso.md#o-auth-strategy">OAuthStrategy</a> | "password" | "email_address" | "phone_number" | "username" | "first_name" | "last_name" | "web3_wallet" | "enterprise_sso" | "legal_accepted" | "email_address_or_phone_number")[]</code> | An array of all the required fields that need to be supplied and verified in order for this sign-up to be marked as complete and converted into a user.                                                                                                                                                                                                                 |
| <a id="status"></a> `status`                     | `"complete" | "abandoned" | "missing_requirements"`                                                                                                                                                                                                                                   | The status of the current sign-up.                                                                                                                                                                                                                                                                                                                                      |
| <a id="unsafemetadata"></a> `unsafeMetadata`     | [SignUpUnsafeMetadata](https://clerk.com/docs/vue/reference/types/metadata.md#sign-up-unsafe-metadata)                                                                                                                                                                                           | Metadata that can be read and set from the frontend. Once the sign-up is complete, the value of this field will be automatically copied to the newly created user's unsafe metadata. One common use case for this attribute is to use it to implement custom fields that can be collected during sign-up and will automatically be attached to the created User object. |
| <a id="unverifiedfields"></a> `unverifiedFields` | <code>(<a href="https://clerk.com/docs/vue/reference/types/sso.md#o-auth-strategy">OAuthStrategy</a> | "email_address" | "phone_number" | "username" | "web3_wallet" | "enterprise_sso" | "email_address_or_phone_number")[]</code>                                                              | An array of all the fields whose values have been supplied, but they need additional verification in order for them to be accepted. Examples of such fields are `email_address` and `phone_number`.                                                                                                                                                                     |
| <a id="username"></a> `username`                 | `null | string`                                                                                                                                                                                                                                                                       | The `username` supplied to the current sign-up. Only supported if [username](https://clerk.com/docs/guides/configure/auth-strategies/sign-up-sign-in-options.md?sdk=vue#username) is enabled in the instance settings.                                                                                                                                                  |
| <a id="web3wallet"></a> `web3Wallet`             | `null | string`                                                                                                                                                                                                                                                                       | The Web3 wallet address supplied to the current sign-up, made up of 0x + 40 hexadecimal characters. Only supported if [Web3 authentication](https://clerk.com/docs/guides/configure/auth-strategies/sign-up-sign-in-options.md?sdk=vue#web3-authentication) is enabled in the instance settings.                                                                        |

## Methods

### `create()`

Creates a new `SignUp` instance initialized with the provided parameters. The instance maintains the sign-up lifecycle state through its `status` property, which updates as the authentication flow progresses. Will also deactivate any existing sign-up process the client may already have in progress. Once the sign-up process is complete, call the [signUp.finalize()](https://clerk.com/docs/vue/reference/objects/sign-up-future.md#finalize) method to set the newly created session as the active session.

What you must pass to `params` depends on which [sign-up options](https://clerk.com/docs/guides/configure/auth-strategies/sign-up-sign-in-options.md?sdk=vue) you have enabled in your app's settings in the Clerk Dashboard.

You can complete the sign-up process in one step if you supply the required fields to `create()`. Otherwise, Clerk's sign-up process provides great flexibility and allows users to easily create multi-step sign-up flows.

> The `signUp.create()` method is intended for advanced use cases. For most use cases, prefer the use of the factor-specific methods such as `signUp.password()`, `signUp.sso()`, etc.

```typescript
function create(params: SignUpFutureCreateParams): Promise<{ error: null | ClerkError }>
```

#### `SignUpFutureCreateParams`

| Property                                      | Type                                                                                                                                                                                             | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| <a id="emailaddress"></a> `emailAddress?`     | `string`                                                                                                                                                                                         | The user's email address. Only supported if [Email address](https://clerk.com/docs/guides/configure/auth-strategies/sign-up-sign-in-options.md?sdk=vue#email) is enabled in the instance settings. Keep in mind that the email address requires an extra verification process.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| <a id="firstname"></a> `firstName?`           | `string`                                                                                                                                                                                         | The user's first name. Only supported if [First and last name](https://clerk.com/docs/guides/configure/auth-strategies/sign-up-sign-in-options.md?sdk=vue#user-model) is enabled in the instance settings.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| <a id="lastname"></a> `lastName?`             | `string`                                                                                                                                                                                         | The user's last name. Only supported if [First and last name](https://clerk.com/docs/guides/configure/auth-strategies/sign-up-sign-in-options.md?sdk=vue#user-model) is enabled in the instance settings.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| <a id="legalaccepted"></a> `legalAccepted?`   | `boolean`                                                                                                                                                                                        | Indicates whether the user has agreed to the [legal compliance](https://clerk.com/docs/guides/secure/legal-compliance.md?sdk=vue) documents.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| <a id="locale"></a> `locale?`                 | `string`                                                                                                                                                                                         | The locale to assign to the user in [BCP 47](https://developer.mozilla.org/en-US/docs/Glossary/BCP_47_language_tag) format (e.g., "en-US", "fr-FR"). If omitted, defaults to the browser's locale.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| <a id="password"></a> `password?`             | `string`                                                                                                                                                                                         | The user's password. [Password](https://clerk.com/docs/guides/configure/auth-strategies/sign-up-sign-in-options.md?sdk=vue#password) must be enabled in the instance settings.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| <a id="phonenumber"></a> `phoneNumber?`       | `string`                                                                                                                                                                                         | The user's phone number in [E.164 format](https://en.wikipedia.org/wiki/E.164). Only supported if [phone number](https://clerk.com/docs/guides/configure/auth-strategies/sign-up-sign-in-options.md?sdk=vue#phone) is enabled in the instance settings. Keep in mind that the phone number requires an extra verification process.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| <a id="strategy"></a> `strategy?`             | <code><a href="https://clerk.com/docs/vue/reference/types/sso.md#o-auth-strategy">OAuthStrategy</a> | "phone_code" | "enterprise_sso" | "ticket" | "google_one_tap" | "oauth_token_apple"</code> | The strategy to use for the sign-up. The following strategies are supported: <ul> <li><code>'oauth_<provider>'</code>: The user will be authenticated with their <a href="https://clerk.com/docs/vue/guides/configure/auth-strategies/social-connections/overview.md">social connection account</a>. See a list of <a href="https://clerk.com/docs/vue/reference/types/sso.md">supported values for <provider></a>.</li> <li>`'enterprise_sso'`: The user will be authenticated either through SAML or OIDC depending on the configuration of their <a href="https://clerk.com/docs/guides/configure/auth-strategies/enterprise-connections/overview.md?sdk=vue">enterprise SSO account</a>.</li> <li>`'ticket'`: The user will be authenticated via the ticket or token generated from the Backend API.</li> <li>`'google_one_tap'`: The user will be authenticated with the Google One Tap UI. It's recommended to use <a href="https://clerk.com/docs/vue/reference/components/authentication/google-one-tap.md#authenticate-with-google-one-tap">authenticateWithGoogleOneTap()</a> instead, as it will also set the user's current session as active for you.</li> <li>`'oauth_token_apple'`: The user will be authenticated using a native <a href="https://clerk.com/docs/guides/configure/auth-strategies/sign-in-with-apple.md">Sign in with Apple</a> identity token.</li> <li>`'phone_code'`: The user will receive a one-time code via SMS to verify their phone number.</li> </ul> |
| <a id="ticket"></a> `ticket?`                 | `string`                                                                                                                                                                                         | **Required** if `strategy` is set to `'ticket'`. The [ticket _or token_](https://clerk.com/docs/guides/development/custom-flows/authentication/application-invitations.md?sdk=vue) generated from the Backend API.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| <a id="transfer"></a> `transfer?`             | `boolean`                                                                                                                                                                                        | When set to `true`, the `SignUp` will attempt to retrieve information from the active `SignIn` instance and use it to complete the sign-up process. This is useful when you want to seamlessly transition a user from a sign-in attempt to a sign-up attempt.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| <a id="unsafemetadata"></a> `unsafeMetadata?` | [SignUpUnsafeMetadata](https://clerk.com/docs/vue/reference/types/metadata.md#sign-up-unsafe-metadata)                                                                                           | Metadata that can be read and set from the frontend. Once the sign-up is complete, the value of this field will be automatically copied to the newly created user's unsafe metadata. One common use case for this attribute is to use it to implement custom fields that can be collected during sign-up and will automatically be attached to the created User object.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| <a id="username"></a> `username?`             | `string`                                                                                                                                                                                         | The user's username. Only supported if [username](https://clerk.com/docs/guides/configure/auth-strategies/sign-up-sign-in-options.md?sdk=vue#username) is enabled in the instance settings.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| <a id="web3wallet"></a> `web3Wallet?`         | `string`                                                                                                                                                                                         | The Web3 wallet address, made up of 0x + 40 hexadecimal characters. Only supported if [Web3 authentication](https://clerk.com/docs/guides/configure/auth-strategies/sign-up-sign-in-options.md?sdk=vue#web3-authentication) is enabled in the instance settings.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |

### `finalize()`

Converts a sign-up with `status === 'complete'` into an active session. Will cause anything observing the session state (such as the [useUser()](https://clerk.com/docs/reference/hooks/use-user.md) hook) to update automatically.

```typescript
function finalize(params?: SignUpFutureFinalizeParams): Promise<{ error: null | ClerkError }>
```

#### `SignUpFutureFinalizeParams`

| Property                          | Type                | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| --------------------------------- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <a id="navigate"></a> `navigate?` | `SetActiveNavigate` | A custom navigation function to be called just before the session and/or Organization is set. When provided, it takes precedence over the `redirectUrl` parameter for navigation. The callback receives a `decorateUrl` function that should be used to wrap destination URLs. This enables Safari ITP cookie refresh when needed. The decorated URL may be an external URL (starting with `https://`) that requires `window.location.href` instead of client-side navigation. See the [section on using the navigate() parameter](https://clerk.com/docs/vue/reference/objects/clerk.md#using-the-navigate-parameter) for more details. |

### `password()`

Performs a password-based sign-up.

```typescript
function password(params: SignUpFuturePasswordParams): Promise<{ error: null | ClerkError }>
```

#### `SignUpFuturePasswordParams`

| Property                                      | Type                                                                                                   | Description                                                                                                                                                                                                                                                                                                                                                             |
| --------------------------------------------- | ------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `emailAddress`                                | `string`                                                                                               | The user's email address. Only supported if [Email address](https://clerk.com/docs/guides/configure/auth-strategies/sign-up-sign-in-options.md?sdk=vue#email) is enabled in the instance settings. Keep in mind that the email address requires an extra verification process.                                                                                          |
| <a id="firstname"></a> `firstName?`           | `string`                                                                                               | The user's first name. Only supported if [First and last name](https://clerk.com/docs/guides/configure/auth-strategies/sign-up-sign-in-options.md?sdk=vue#user-model) is enabled in the instance settings.                                                                                                                                                              |
| <a id="lastname"></a> `lastName?`             | `string`                                                                                               | The user's last name. Only supported if [First and last name](https://clerk.com/docs/guides/configure/auth-strategies/sign-up-sign-in-options.md?sdk=vue#user-model) is enabled in the instance settings.                                                                                                                                                               |
| <a id="legalaccepted"></a> `legalAccepted?`   | `boolean`                                                                                              | Indicates whether the user has agreed to the [legal compliance](https://clerk.com/docs/guides/secure/legal-compliance.md?sdk=vue) documents.                                                                                                                                                                                                                            |
| <a id="locale"></a> `locale?`                 | `string`                                                                                               | The locale to assign to the user in [BCP 47](https://developer.mozilla.org/en-US/docs/Glossary/BCP_47_language_tag) format (e.g., "en-US", "fr-FR"). If omitted, defaults to the browser's locale.                                                                                                                                                                      |
| `password`                                    | `string`                                                                                               | The user's password. [Password](https://clerk.com/docs/guides/configure/auth-strategies/sign-up-sign-in-options.md?sdk=vue#password) must be enabled in the instance settings.                                                                                                                                                                                          |
| `phoneNumber?`                                | `string`                                                                                               | The user's phone number in [E.164 format](https://en.wikipedia.org/wiki/E.164). Only supported if [phone number](https://clerk.com/docs/guides/configure/auth-strategies/sign-up-sign-in-options.md?sdk=vue#phone) is enabled in the instance settings. Keep in mind that the phone number requires an extra verification process.                                      |
| <a id="unsafemetadata"></a> `unsafeMetadata?` | [SignUpUnsafeMetadata](https://clerk.com/docs/vue/reference/types/metadata.md#sign-up-unsafe-metadata) | Metadata that can be read and set from the frontend. Once the sign-up is complete, the value of this field will be automatically copied to the newly created user's unsafe metadata. One common use case for this attribute is to use it to implement custom fields that can be collected during sign-up and will automatically be attached to the created User object. |
| `username?`                                   | `string`                                                                                               | The user's username. Only supported if [username](https://clerk.com/docs/guides/configure/auth-strategies/sign-up-sign-in-options.md?sdk=vue#username) is enabled in the instance settings.                                                                                                                                                                             |

### `reset()`

Resets the current sign-up attempt by clearing all local state back to null. This is useful when you want to allow users to go back to the beginning of the sign-up flow (e.g., to change their email address during verification).

Unlike other methods, `reset()` does not trigger the `fetchStatus` to change to `'fetching'` and does not make any API calls - it only clears local state.

```typescript
function reset(): Promise<{ error: null | ClerkError }>
```

### `sso()`

Performs an SSO-based sign-up ([Social/OAuth](https://clerk.com/docs/vue/guides/configure/auth-strategies/social-connections/overview.md) or [Enterprise](https://clerk.com/docs/guides/configure/auth-strategies/enterprise-connections/overview.md?sdk=vue)).

```typescript
function sso(params: SignUpFutureSSOParams): Promise<{ error: null | ClerkError }>
```

#### `SignUpFutureSSOParams`

| Property                                                      | Type                                                                                                   | Description                                                                                                                                                                                                                                                                                                                                                             |
| ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <a id="emailaddress"></a> `emailAddress?`                     | `string`                                                                                               | The email address to use for targeting an enterprise connection at sign-up.                                                                                                                                                                                                                                                                                             |
| <a id="enterpriseconnectionid"></a> `enterpriseConnectionId?` | `string`                                                                                               | The identifier of the enterprise connection to target when using the `enterprise_sso` strategy.                                                                                                                                                                                                                                                                         |
| <a id="firstname"></a> `firstName?`                           | `string`                                                                                               | The user's first name. Only supported if [First and last name](https://clerk.com/docs/guides/configure/auth-strategies/sign-up-sign-in-options.md?sdk=vue#user-model) is enabled in the instance settings.                                                                                                                                                              |
| <a id="lastname"></a> `lastName?`                             | `string`                                                                                               | The user's last name. Only supported if [First and last name](https://clerk.com/docs/guides/configure/auth-strategies/sign-up-sign-in-options.md?sdk=vue#user-model) is enabled in the instance settings.                                                                                                                                                               |
| <a id="legalaccepted"></a> `legalAccepted?`                   | `boolean`                                                                                              | Indicates whether the user has agreed to the [legal compliance](https://clerk.com/docs/guides/secure/legal-compliance.md?sdk=vue) documents.                                                                                                                                                                                                                            |
| <a id="locale"></a> `locale?`                                 | `string`                                                                                               | The locale to assign to the user in [BCP 47](https://developer.mozilla.org/en-US/docs/Glossary/BCP_47_language_tag) format (e.g., "en-US", "fr-FR"). If omitted, defaults to the browser's locale.                                                                                                                                                                      |
| <a id="oidcprompt"></a> `oidcPrompt?`                         | `string`                                                                                               | The value to pass to the [OIDC prompt parameter](https://openid.net/specs/openid-connect-core-1_0.html#:~:text=prompt,reauthentication%20and%20consent.) in the generated OAuth redirect URL.                                                                                                                                                                           |
| <a id="popup"></a> `popup?`                                   | `Window`                                                                                               | If provided, a `Window` to use for the OAuth flow. Useful in instances where you cannot navigate to an OAuth provider.                                                                                                                                                                                                                                                  |
| <a id="redirectcallbackurl"></a> `redirectCallbackUrl`        | `string`                                                                                               | The URL or path to navigate to if a session was not created, and needs additional information.                                                                                                                                                                                                                                                                          |
| <a id="redirecturl"></a> `redirectUrl`                        | `string`                                                                                               | The URL or path to navigate to after the OAuth or SAML flow completes. Can be provided as a relative URL (such as `/dashboard`), in which case it will be prefixed with the base URL of the current page.                                                                                                                                                               |
| <a id="strategy"></a> `strategy`                              | `string`                                                                                               | The strategy to use for authentication. Either [OAuthStrategy](https://clerk.com/docs/vue/reference/types/sso.md#o-auth-strategy) or [EnterpriseSSOStrategy](https://clerk.com/docs/vue/reference/types/sso.md#enterprise-sso-strategy).                                                                                                                                |
| <a id="unsafemetadata"></a> `unsafeMetadata?`                 | [SignUpUnsafeMetadata](https://clerk.com/docs/vue/reference/types/metadata.md#sign-up-unsafe-metadata) | Metadata that can be read and set from the frontend. Once the sign-up is complete, the value of this field will be automatically copied to the newly created user's unsafe metadata. One common use case for this attribute is to use it to implement custom fields that can be collected during sign-up and will automatically be attached to the created User object. |

### `ticket()`

Performs a ticket-based sign-up.

```typescript
function ticket(params?: SignUpFutureTicketParams): Promise<{ error: null | ClerkError }>
```

#### `SignUpFutureTicketParams`

| Property                                      | Type                                                                                                   | Description                                                                                                                                                                                                                                                                                                                                                             |
| --------------------------------------------- | ------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <a id="firstname"></a> `firstName?`           | `string`                                                                                               | The user's first name. Only supported if [First and last name](https://clerk.com/docs/guides/configure/auth-strategies/sign-up-sign-in-options.md?sdk=vue#user-model) is enabled in the instance settings.                                                                                                                                                              |
| <a id="lastname"></a> `lastName?`             | `string`                                                                                               | The user's last name. Only supported if [First and last name](https://clerk.com/docs/guides/configure/auth-strategies/sign-up-sign-in-options.md?sdk=vue#user-model) is enabled in the instance settings.                                                                                                                                                               |
| <a id="legalaccepted"></a> `legalAccepted?`   | `boolean`                                                                                              | Indicates whether the user has agreed to the [legal compliance](https://clerk.com/docs/guides/secure/legal-compliance.md?sdk=vue) documents.                                                                                                                                                                                                                            |
| <a id="locale"></a> `locale?`                 | `string`                                                                                               | The locale to assign to the user in [BCP 47](https://developer.mozilla.org/en-US/docs/Glossary/BCP_47_language_tag) format (e.g., "en-US", "fr-FR"). If omitted, defaults to the browser's locale.                                                                                                                                                                      |
| <a id="ticket"></a> `ticket`                  | `string`                                                                                               | **Required** if `strategy` is set to `'ticket'`. The [ticket _or token_](https://clerk.com/docs/guides/development/custom-flows/authentication/application-invitations.md?sdk=vue) generated from the Backend API.                                                                                                                                                      |
| <a id="unsafemetadata"></a> `unsafeMetadata?` | [SignUpUnsafeMetadata](https://clerk.com/docs/vue/reference/types/metadata.md#sign-up-unsafe-metadata) | Metadata that can be read and set from the frontend. Once the sign-up is complete, the value of this field will be automatically copied to the newly created user's unsafe metadata. One common use case for this attribute is to use it to implement custom fields that can be collected during sign-up and will automatically be attached to the created User object. |

### `update()`

Updates the current `SignUpFuture` instance with the provided parameters.

```typescript
function update(params: SignUpFutureUpdateParams): Promise<{ error: null | ClerkError }>
```

#### `SignUpFutureUpdateParams`

| Property                                      | Type                                                                                                   | Description                                                                                                                                                                                                                                                                                                                                                             |
| --------------------------------------------- | ------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <a id="emailaddress"></a> `emailAddress?`     | `string`                                                                                               | The user's email address. Only supported if [Email address](https://clerk.com/docs/guides/configure/auth-strategies/sign-up-sign-in-options.md?sdk=vue#email) is enabled in the instance settings. Keep in mind that the email address requires an extra verification process.                                                                                          |
| <a id="firstname"></a> `firstName?`           | `string`                                                                                               | The user's first name. Only supported if [First and last name](https://clerk.com/docs/guides/configure/auth-strategies/sign-up-sign-in-options.md?sdk=vue#user-model) is enabled in the instance settings.                                                                                                                                                              |
| <a id="lastname"></a> `lastName?`             | `string`                                                                                               | The user's last name. Only supported if [First and last name](https://clerk.com/docs/guides/configure/auth-strategies/sign-up-sign-in-options.md?sdk=vue#user-model) is enabled in the instance settings.                                                                                                                                                               |
| <a id="legalaccepted"></a> `legalAccepted?`   | `boolean`                                                                                              | Indicates whether the user has agreed to the [legal compliance](https://clerk.com/docs/guides/secure/legal-compliance.md?sdk=vue) documents.                                                                                                                                                                                                                            |
| <a id="locale"></a> `locale?`                 | `string`                                                                                               | The locale to assign to the user in [BCP 47](https://developer.mozilla.org/en-US/docs/Glossary/BCP_47_language_tag) format (e.g., "en-US", "fr-FR"). If omitted, defaults to the browser's locale.                                                                                                                                                                      |
| <a id="phonenumber"></a> `phoneNumber?`       | `string`                                                                                               | The user's phone number in [E.164 format](https://en.wikipedia.org/wiki/E.164). Only supported if [phone number](https://clerk.com/docs/guides/configure/auth-strategies/sign-up-sign-in-options.md?sdk=vue#phone) is enabled in the instance settings. Keep in mind that the phone number requires an extra verification process.                                      |
| <a id="unsafemetadata"></a> `unsafeMetadata?` | [SignUpUnsafeMetadata](https://clerk.com/docs/vue/reference/types/metadata.md#sign-up-unsafe-metadata) | Metadata that can be read and set from the frontend. Once the sign-up is complete, the value of this field will be automatically copied to the newly created user's unsafe metadata. One common use case for this attribute is to use it to implement custom fields that can be collected during sign-up and will automatically be attached to the created User object. |
| <a id="username"></a> `username?`             | `string`                                                                                               | The user's username. Only supported if [username](https://clerk.com/docs/guides/configure/auth-strategies/sign-up-sign-in-options.md?sdk=vue#username) is enabled in the instance settings.                                                                                                                                                                             |

### `verifications`

An object that contains information about all available verification strategies.

| Property                                                   | Type                                                                                                                                                 | Description                                                                                                                                                                                                                                                                                                                                                                   |
| ---------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <a id="emailaddress"></a> `emailAddress`                   | [SignUpVerificationResource](https://clerk.com/docs/vue/reference/types/sign-up-verification-resource.md)                                            | Holds information about the email address verification.                                                                                                                                                                                                                                                                                                                       |
| <a id="emaillinkverification"></a> `emailLinkVerification` | `null | { createdSessionId: string; status: "expired" | "failed" | "verified" | "client_mismatch"; verifiedFromTheSameClient: boolean; }` | The verification status for email link flows. <ul> <li>`status`: The verification status.</li> <li>`createdSessionId`: The ID of the session that was created upon successful verification.</li> <li>`verifiedFromTheSameClient`: Whether the verification was from the same client (browser) that initiated the email link flow.</li> </ul> |
| <a id="externalaccount"></a> `externalAccount`             | [VerificationResource](https://clerk.com/docs/vue/reference/types/verification-resource.md)                                                          | Holds information about the external account verification.                                                                                                                                                                                                                                                                                                                    |
| <a id="phonenumber"></a> `phoneNumber`                     | [SignUpVerificationResource](https://clerk.com/docs/vue/reference/types/sign-up-verification-resource.md)                                            | Holds information about the phone number verification.                                                                                                                                                                                                                                                                                                                        |
| <a id="web3wallet"></a> `web3Wallet`                       | [VerificationResource](https://clerk.com/docs/vue/reference/types/verification-resource.md)                                                          | Holds information about the Web3 wallet verification.                                                                                                                                                                                                                                                                                                                         |

### `verifications.sendEmailCode()`

Sends an email code to verify an email address.

```typescript
function sendEmailCode(): Promise<{ error: null | ClerkError }>
```

### `verifications.verifyEmailCode()`

Verifies a code sent with the [verifications.sendEmailCode()](https://clerk.com/docs/vue/reference/objects/sign-up-future.md#verifications-send-email-code) method.

```typescript
function verifyEmailCode(params: SignUpFutureEmailCodeVerifyParams): Promise<{ error: null | ClerkError }>
```

#### `SignUpFutureEmailCodeVerifyParams`

| Property                 | Type     | Description                         |
| ------------------------ | -------- | ----------------------------------- |
| <a id="code"></a> `code` | `string` | The code that was sent to the user. |

### `verifications.sendEmailLink()`

Sends an email link to verify an email address.

```typescript
function sendEmailLink(params: SignUpFutureEmailLinkSendParams): Promise<{ error: null | ClerkError }>
```

#### `SignUpFutureEmailLinkSendParams`

| Property                                       | Type     | Description                                                                      |
| ---------------------------------------------- | -------- | -------------------------------------------------------------------------------- |
| <a id="verificationurl"></a> `verificationUrl` | `string` | The full URL that the user will be redirected to when they visit the email link. |

### `verifications.waitForEmailLinkVerification()`

Will wait for email link verification to complete or expire after calling [verifications.sendEmailLink()](https://clerk.com/docs/vue/reference/objects/sign-up-future.md#verifications-send-email-link).

```typescript
function waitForEmailLinkVerification(): Promise<{ error: null | ClerkError }>
```

### `verifications.sendPhoneCode()`

Sends a phone code to verify a phone number.

```typescript
function sendPhoneCode(params?: SignUpFuturePhoneCodeSendParams): Promise<{ error: null | ClerkError }>
```

#### `SignUpFuturePhoneCodeSendParams`

| Property                        | Type                            | Description                                                                              |
| ------------------------------- | ------------------------------- | ---------------------------------------------------------------------------------------- |
| <a id="channel"></a> `channel?` | `"sms" | "whatsapp"` | The mechanism to use to send the code to the provided phone number. Defaults to `'sms'`. |

### `verifications.verifyPhoneCode()`

Verifies a code sent with the [verifications.sendPhoneCode()](https://clerk.com/docs/vue/reference/objects/sign-up-future.md#verifications-send-phone-code) method.

```typescript
function verifyPhoneCode(params: SignUpFuturePhoneCodeVerifyParams): Promise<{ error: null | ClerkError }>
```

#### `SignUpFuturePhoneCodeVerifyParams`

| Property                 | Type     | Description                         |
| ------------------------ | -------- | ----------------------------------- |
| <a id="code"></a> `code` | `string` | The code that was sent to the user. |

### `web3()`

Performs a Web3-based sign-up.

```typescript
function web3(params: SignUpFutureWeb3Params): Promise<{ error: null | ClerkError }>
```

#### `SignUpFutureWeb3Params`

| Property                                      | Type                                                                                                                                                      | Description                                                                                                                                                                                                                                                                                                                                                             |
| --------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <a id="firstname"></a> `firstName?`           | `string`                                                                                                                                                  | The user's first name. Only supported if [First and last name](https://clerk.com/docs/guides/configure/auth-strategies/sign-up-sign-in-options.md?sdk=vue#user-model) is enabled in the instance settings.                                                                                                                                                              |
| <a id="lastname"></a> `lastName?`             | `string`                                                                                                                                                  | The user's last name. Only supported if [First and last name](https://clerk.com/docs/guides/configure/auth-strategies/sign-up-sign-in-options.md?sdk=vue#user-model) is enabled in the instance settings.                                                                                                                                                               |
| <a id="legalaccepted"></a> `legalAccepted?`   | `boolean`                                                                                                                                                 | Indicates whether the user has agreed to the [legal compliance](https://clerk.com/docs/guides/secure/legal-compliance.md?sdk=vue) documents.                                                                                                                                                                                                                            |
| <a id="locale"></a> `locale?`                 | `string`                                                                                                                                                  | The locale to assign to the user in [BCP 47](https://developer.mozilla.org/en-US/docs/Glossary/BCP_47_language_tag) format (e.g., "en-US", "fr-FR"). If omitted, defaults to the browser's locale.                                                                                                                                                                      |
| <a id="strategy"></a> `strategy`              | `"web3_metamask_signature" | "web3_base_signature" | "web3_coinbase_wallet_signature" | "web3_okx_wallet_signature" | "web3_solana_signature"` | The verification strategy to validate the user's sign-up request.                                                                                                                                                                                                                                                                                                       |
| <a id="unsafemetadata"></a> `unsafeMetadata?` | [SignUpUnsafeMetadata](https://clerk.com/docs/vue/reference/types/metadata.md#sign-up-unsafe-metadata)                                                    | Metadata that can be read and set from the frontend. Once the sign-up is complete, the value of this field will be automatically copied to the newly created user's unsafe metadata. One common use case for this attribute is to use it to implement custom fields that can be collected during sign-up and will automatically be attached to the created User object. |

---

## Sitemap

[Overview of all docs pages](https://clerk.com/docs/llms.txt)
