Dashboard Setup
Configure Action-Based MFA in the dashboard before implementing in your application. See End-User MFA Configuration - Action-Based MFA for dashboard setup instructions.Events that trigger Action-Based MFA
- Waas Export - When exporting a private key on an MPC wallet.
- Waas Refresh - When a wallet is delegated, or when a user claims a pregenerated MPC wallet for the first time.
- WaaS Sign - When any signature is performed i.e. a message, a transaction, typed data, authorization, etc.
- WaaS Reshare - When a wallet is approved or revoked from delegated access and the user next signs in.
Your UI SDK Implementation
- TOTP
- Passkey
-
Check requirement: Use
client.mfa.isRequiredForAction()for the specific action.- Create token: If required, collect OTP and call
client.mfa.authenticateDevice({ code, createMfaToken }). - Perform action: Token is applied automatically after creation.
- Only one verified TOTP device per user (device management applies across modes).
- Recovery codes are single-use; regenerate with
client.mfa.getNewRecoveryCodes()if exhausted.
- Error: “MFA required” despite prompting — ensure you authenticate before performing the action.
- Token unexpectedly missing — tokens expire with session; create a new token when needed.
- Create token: If required, collect OTP and call
Dynamic UI Implementation
The React Native SDK provides a UI method to prompt MFA authentication. Useclient.mfa.isRequiredForAction() to check if MFA is required, then use client.ui.mfa.show() to prompt the user.
Note: The Dynamic UI is method-agnostic. It automatically prompts with whichever MFA method(s) you have enabled (TOTP only for React Native).