Skip to main content

SMS OTP Login with Web3Auth

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 Web3Auth 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 Web3Auth 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 Quickstart Guide to setup the basic flow.