Please make sure you are on v4.20.6 before continuing.
During Signup (Automatic)
Creating Embedded Wallets
By default, embedded wallets are created automatically for users during sign-up if they don’t already have a wallet on the enabled chain. All you have to do is check that the “Create on Sign up” toggle is turned on in the Embedded Wallet configuration page.
Automatic embedded wallet creation only creates a single wallet for a user on each chain you have selected. For information on how to create multiple wallets, see the “Creating Wallets Any Time” section below.
Creating Wallets for users with External Wallets
You can automatically create embedded wallets for users who sign in with external wallets like MetaMask. To enable this feature, open the “Create on Sign Up” card, expand the “Advanced Options” panel, and turn on the “Embedded Wallet for Third-Party Wallets” toggle.
Custom Logic (Manual)
Check if User has an Embedded Wallet
You can check if a user has an embedded wallet by using theuseDynamicWaas hook.
Creating Wallets Any Time
If you do not want to create wallets for users automatically when they sign up, you can create wallets for users using custom logic. To do so, call thecreateWalletAccount method from the useDynamicWaas hook when you want to create a wallet for a user.
You can control which chains you create wallets on by passing an array of chains to the
createWalletAccount method. See the useDynamicWaas documentation for more details.Creating Wallets with a Passcode
You can create MPC wallets that are protected with a passcode for additional security. When a wallet is created with a passcode, certain operations (like signing transactions or exporting keys) will require the passcode to be provided.Passcode options
There are two approaches to providing the passcode:| Approach | Description | Best for |
|---|---|---|
| User-provided | User chooses and remembers their own passcode | Users who want full control over wallet security |
| Developer-managed | You generate and store the passcodes on your backend | Seamless UX without passcode prompts |
Why use developer-managed passcodes?
- Seamless device migration: Users can lose their device and seamlessly migrate to a new one without needing to remember any passcode.
- Better user experience: No passcode prompts or recovery flows for users to manage.
- Reduced trust in any single party: No single party (Dynamic, encryption provider, or you) can access the wallet alone—all three would need to collude, eliminating single points of trust.
Important considerations
- User-provided passcodes: Ensure users understand the importance of backing up their passcodes. If lost, wallet recovery may not be possible.
- Developer-managed passcodes: Store passcodes securely on your backend with proper encryption. You are responsible for passcode security and availability. Use unique passcodes for each user—do not reuse passcodes across different users.