Skip to main content

SMS OTP Login with Embedded Wallets

Web3Auth provides built-in support for email and SMS-based authentication, allowing users to log in seamlessly using a one-time passcode (OTP) sent to their email address or phone number. This form of passwordless authentication simplifies the onboarding process, removes friction for end users, and expands accessibility—especially in regions where social login options may be limited.

SMS OTP Onboarding

Set Up a Custom SMS OTP Connection

Enable on Dashboard

To use this feature, developers must first enable SMS OTP from the Social Connections section in the Embedded Wallets Dashboard.

By default, Web3Auth uses its own pre-configured credentials for SMS OTP login.

SMS OTP Toggle

For enhanced control and branding, developers are encouraged to configure a custom SMS OTP connection. Follow these steps:

  1. Visit the Embedded Wallets Dashboard.
  2. Go to the Social Connections section.
  3. Click the Settings icon next to the toggle for SMS OTP.
  4. Enter your custom Auth Connection ID.
  5. Click Add Connection to complete the setup.
SMS OTP Add Connection

Usage

web3authContext.tsx
import { WALLET_CONNECTORS, WEB3AUTH_NETWORK } from '@web3auth/modal'
import { type Web3AuthContextConfig } from '@web3auth/modal/react'

const web3AuthContextConfig: Web3AuthContextConfig = {
web3AuthOptions: {
clientId: 'YOUR_CLIENT_ID',
web3AuthNetwork: WEB3AUTH_NETWORK.SAPPHIRE_MAINNET,
modalConfig: {
connectors: {
[WALLET_CONNECTORS.AUTH]: {
label: 'auth',
loginMethods: {
sms_passwordless: {
name: 'SMS Passwordless',
authConnection: AUTH_CONNECTION.SMS_PASSWORDLESS,
authConnectionId: 'sms-test-demo', // Replace with your custom SMS OTP Auth Connection ID
},
},
},
},
},
},
}

export default web3AuthContextConfig

Follow our Quick Starts to setup the basic flow.