Skip to main content
Verify users with SMS-based MFA by requesting and submitting a 6-digit code sent to their enrolled phone number.

Requesting an MFA challenge

To request an MFA challenge for the current user, call the init method from the useMfa hook, passing 'sms' as the MFA method parameter:
import {useMfa} from '@privy-io/react-auth';

const {init, submit} = useMfa();

// Request an SMS MFA challenge
await init('sms');
The init method will prepare an MFA challenge for the SMS method. The user will receive an SMS with their MFA code at the phone number they originally enrolled. The method returns a Promise that resolves if the challenge was successfully created, and rejects with an error if there was an issue.

Submitting the MFA verification

Once init has resolved successfully, prompt the user to get their MFA code from their SMS and enter it within your app. Then, call the submit method from useMfa. As parameters, pass the MFA method ('sms') and the MFA code that the user entered:
const mfaCode = 'insert-mfa-code-from-user';
await submit('sms', mfaCode);
When submit resolves successfully, the user has completed MFA and can proceed to use their embedded wallet.