
- SMS, where users verify with a 6-digit MFA code sent to their phone number
- Time-based one-time password (TOTP), where users verify with a 6-digit MFA code from an authentication app, like Authy or Google Authenticator
- Passkeys, where users verify with a previously registered passkey, generally through biometric authentication on their device
Once a user enrolls in MFA, it will remain enabled even if you disable MFA for your app. Users
must manually disable MFA on their wallets if they wish to remove it.
Granular MFA with Policies
By default, once a user enrolls in MFA, all wallet actions require MFA verification. However, you can implement granular MFA to require MFA only for specific actions while allowing routine transactions to proceed without additional verification. For example, you can:- Require MFA only for transactions above a certain amount (e.g., transfers over 1000 USDC)
- Require MFA for withdrawals while allowing deposits without MFA
- Apply MFA requirements based on specific tokens, contracts, or actions
Learn how to implement granular MFA in our Granular MFA recipe.

