Skip to content

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 currently enable an Authenticator App (TOTP) and SMS. Support for security keys (hardware and passkeys) and biometrics (Touch and Face ID) are coming soon.

Once a user has enrolled in MFA, they will be required to enter in an MFA code whenever they sign a message or send a transaction from their embedded wallet. Once a user has succesfully entered in a code, 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.


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.


Previously, the Privy SDK used the embeddedWallets.noPromptOnSignature config to toggle embedded wallet confirmation modals. We have moved the configuration to the dashboard, but existing apps using this SDK-side configuration will continue to function as before. We strongly recommend moving to the dashboard for toggling embedded wallet confirmation modals, as the SDK-side config will be fully deprecated in the future.


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.


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.

Configuring recovery of embedded 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:
  • 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.


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.