Dynamic v3 wallets are built on our most advanced TSS-MPC infrastructure, delivering stronger security and flexibility. This guide explains how to seamlessly transition your users from legacy embedded wallets (v1 & v2).

For New Users

To ensure all new users receive v3 wallets, enable Dynamic WaaS in your Dashboard under Embedded Wallets. No migration is required.

For Existing Users

Create a new v3 wallet and hide the old v2 wallets.
Create a new wallet
import { useDynamicWaas } from '@dynamic-labs/sdk-react-core';
import { ChainEnum } from "@dynamic-labs/sdk-api-core";

const MyComponent = () => {
    const { createWalletAccount } = useDynamicWaas();

    ...onSignIn
    // Adjust the chain you want to create a wallet for as needed
    await createWalletAccount([ChainEnum.Evm]);
}
Get only V3 wallets
import { useDynamicWaas } from '@dynamic-labs/sdk-react-core';

const MyComponent = () => {
    const { getWaasWallets } = useDynamicWaas();
    const v3Wallets = getWaasWallets();
}

Security

The entire migration process via the Dynamic Widget occurs on the client-side within a secure iframe. The private key is exported from the old wallet and imported to the new wallet entirely within this iframe, meaning only the user ever has access to it. No key exists on the server.

FAQs