Appearance
Embedded wallets
Use the Embedded wallets page of the dashboard to configure embedded wallet settings for your app, including when the wallet is created, whether wallet confirmation modals are enforced, how the wallet is recovered, and settings for wallet MFA.
Basic settings
Multi-factor authentication (MFA)
Privy enables users to set up multi-factor authentication (MFA) for their embedded wallet. MFA helps secure the embedded wallet by requiring additional verification of a user's identity when the wallet is used.
Use the Enable MFA for transactions section to enable MFA for embedded wallets in your app. If enabled, you can prompt your users to optionally enroll in MFA for their embedded wallet using Privy's SDKs.
As MFA methods, you can enable Passkeys, Authenticator App (TOTP), and SMS. We recommend that users enroll multiple forms of MFA.
Once a user has enrolled in MFA, they will be required to verify an MFA method whenever they sign a message or send a transaction from their embedded wallet. Once a user has successfully verified MFA, they will not be re-prompted for MFA for 15 minutes.
Wallet creation
To create embedded wallets automatically for users when they login to your app, enable the Manually create wallets for users toggle. You can also enable this setting directly in the Privy SDK or opt to create wallets for users manually.
Confirmation modals
When your app requests a signature or transaction from a user's embedded wallet, Privy will display a UI to preview the action to the user and have them confirm it. These UIs are customizable to allow your app to communicate sufficient context about the action to the user.
If you'd like to use your own UIs in place of Privy's UIs, you can configure embedded wallets to not prompt users on signatures and transactions by disabling the Add confirmation modals toggle.
To configure embedded wallets to not prompt users with Privy default signature and transaction UI, set Add confirmation modals to "off" in your app's embedded wallet settings in the Embedded Wallets page of the Dashboard.
WARNING
Disabling Privy's default wallet prompts can simplify your users' experience of using wallets. This is particularly useful for apps where signatures and transactions may be difficult for users to understand, or where there is a high UX cost to interrupting user flows for each required signature (e.g. gaming).
Nonetheless, choosing to disable the default wallet prompts has important implications regarding the trust relationship between your app and your users and your overall app security. Your app is responsible for communicating clear and accurate context to your users about the actions they are taking with their wallet at all times.
Overriding the default prompts means you can submit transactions on behalf of your users when they are logged in and active. This should only be done with if strictly necessary and with appropriate security measures like wallet MFA enabled. You can always reach out to [email protected] to discuss the tradeoffs of this setup in the context of your product.
TIP
You can override the server configuration for confirmation modals on a per-client basis by setting the embeddedWallets.showWalletUIs
config in the Privy SDK. This configuration option will take precedence over the server configuration.
Recovery
Privy embedded wallets have two core recovery modes: automatic recovery and user-managed recovery. This setting modulates how the embedded wallet's recovery share is encrypted and stored. In either case, Privy has no access to your user's recovery share. Keys are only ever reconstituted on the user's device.
TIP
Read more about Privy's recovery modes here.
Within the dashboard, under the Recovery tab of the Embedded wallets page, you can configure recovery settings for your users' wallets.
Concretely you should:
- Use the Configure user-managed recovery methods selector to choose what recovery methods are enabled for your app. From there, users will be able to select the appropriate method for them when their wallet is first created. Please note that:
- Passwords are always enabled as an option for user-managed recovery.
- Cloud recovery (Google Drive / iCloud) requires additional configuration for your app. Please follow the guide here to set this up.
- Use the Require recovery method on wallet creation toggle to require that users set up a user-managed recovery factor when they create their wallet.
- When this is enabled, users will be required to set up one of the user-managed recovery factors (e.g. passwords or Google Drive) that you have enabled for your app when they create their wallet. They will not be able to skip this step and use automatic recovery.
INFO
If your app has SMS enabled as a login method, you may not enable SMS as an MFA method as well.
With SMS login enabled, SMS can already be used as the primary factor to authenticate the user for access to their wallet; it cannot be enabled as an additional factor as well.