# SignInFirstFactor

The `SignInFirstFactor` type represents the first factor verification strategy that can be used in the sign-in process.

```ts
type SignInFirstFactor =
  | EmailCodeFactor
  | EmailLinkFactor
  | PhoneCodeFactor
  | PasswordFactor
  | ResetPasswordPhoneCodeFactor
  | ResetPasswordEmailCodeFactor
  | Web3SignatureFactor
  | OauthFactor
```

| Name           | Type                                                                                                                                                                                                                                                                                                                                                 | Description                                                                                                                                                                                                                                                                                                                                    |
| -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| strategy       | 'email\_code' | 'email\_link' | 'phone\_code' | 'password' | 'passkey' | 'reset\_password\_phone\_code' | 'reset\_password\_email\_code' | 'web3\_base\_signature' | 'web3\_metamask\_signature' | 'web3\_coinbase\_wallet\_signature' | 'web3\_okx\_wallet\_signature' | 'web3\_solana\_signature' | OAuthStrategy | 'enterprise\_sso' | The strategy of the factor.                                                                                                                                                                                                                                                                                                                    |
| emailAddressId | string                                                                                                                                                                                                                                                                                                                                               | The ID of the email address that a code or link will be sent to. Populated when the strategy is 'email\_code', 'email\_link', or 'reset\_password\_email\_code'.                                                                                                                                                                               |
| phoneNumberId  | string                                                                                                                                                                                                                                                                                                                                               | The ID of the phone number that a code will be sent to. Populated when the strategy is 'phone\_code' or 'reset\_password\_phone\_code'.                                                                                                                                                                                                        |
| web3WalletId   | string                                                                                                                                                                                                                                                                                                                                               | The ID of the Web3 wallet that will be used to sign a message. Populated when the strategy is 'web3\_base\_signature', 'web3\_metamask\_signature', 'web3\_coinbase\_wallet\_signature', 'web3\_okx\_wallet\_signature', or 'web3\_solana\_signature'.                                                                                         |
| safeIdentifier | 'emailAddress' | 'phoneNumber'                                                                                                                                                                                                                                                                                                                      | The safe identifier of the factor. Populated when the strategy is 'email\_code', 'email\_link', 'phone\_code', 'reset\_password\_email\_code', or 'reset\_password\_phone\_code'.                                                                                                                                                              |
| primary        | boolean                                                                                                                                                                                                                                                                                                                                              | Whether the factor is the primary factor. Populated when the strategy is 'email\_code', 'email\_link', 'phone\_code', 'web3\_base\_signature', 'web3\_metamask\_signature', 'web3\_coinbase\_wallet\_signature', 'web3\_okx\_wallet\_signature', 'web3\_solana\_signature', 'reset\_password\_email\_code', or 'reset\_password\_phone\_code'. |

## `EmailCodeFactor`

```ts
type EmailCodeFactor = {
  strategy: EmailCodeStrategy
  emailAddressId: string
  safeIdentifier: string
  primary?: boolean
}
```

## `EmailLinkFactor`

```ts
type EmailLinkFactor = {
  strategy: EmailLinkStrategy
  emailAddressId: string
  safeIdentifier: string
  primary?: boolean
}
```

## `PhoneCodeFactor`

```ts
type PhoneCodeFactor = {
  strategy: PhoneCodeStrategy
  phoneNumberId: string
  safeIdentifier: string
  primary?: boolean
  default?: boolean
}
```

## `PasswordFactor`

```ts
type PasswordFactor = {
  strategy: PasswordStrategy
}
```

## `ResetPasswordPhoneCodeFactor`

```ts
type ResetPasswordPhoneCodeFactor = {
  strategy: ResetPasswordPhoneCodeStrategy
  phoneNumberId: string
  safeIdentifier: string
  primary?: boolean
}
```

## `ResetPasswordEmailCodeFactor`

```ts
type ResetPasswordEmailCodeFactor = {
  strategy: ResetPasswordEmailCodeStrategy
  emailAddressId: string
  safeIdentifier: string
  primary?: boolean
}
```

## `Web3SignatureFactor`

```ts
type Web3SignatureFactor = {
  strategy: Web3Strategy
  web3WalletId: string
  primary?: boolean
}
```

## `OauthFactor`

```ts
type OauthFactor = {
  strategy: OAuthStrategy
}
```

---

## Sitemap

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