Table of contents

Dynamic SDK V3: New Features, Product Updates, and a Guide to Migrate

https://www.dynamic.xyz/blog/dynamic-sdk-v3
Dynamic SDK V3: New Features, Product Updates, and a Guide to Migrate
Dynamic SDK V3: New Features, Product Updates, and a Guide to Migrate
Download

We're thrilled to introduce Dynamic SDK V3, packed with new features, updates, and other upgrades for developers! Below, we cover the important changes that those building with Dynamic need to be aware of. If you need to migrate from V2, follow the guide we put together here.

Pricing

While not a feature of the SDK itself, we want to ensure you can easily use the product without barriers. Therefore, from the release of V3, new users will receive up to 1000 MAUs for free in sandbox. For those with a credit card, you get 1000 MAUs in your live environment for free.

Flutter

Our Flutter SDK went into open Alpha coinciding with the V3 release. It ships with headless email and SMS login, auth flow and profile UI, EVM embedded wallets and web3dart integration. Up next is adding social login and support for solana embedded wallets. Dive deeper into Flutter in our docs here.

Account MFA

V3 introduces account-level MFA using an authenticator app (i.e. Authy or Google Authenticator). You can now ask your end-users to perform 2FA on login to their account. We will soon be adding passkeys and SMS as additional methods alongside authenticator apps so you can choose whichever one/combination best suits your needs. Learn more in the MFA section of our docs.

Multi-Wallet

V3 ships with a huge refactor of how multi-wallet operates, improving all aspects of managing multiple wallets in your app. Rather than verifying if a wallet is unlocked and available when the user adds or switches to it, we can switch instantly and only prompt when the user initiates an interaction, like signing a transaction.

Telegram Auto-login

Along with our Log In with Telegram, you can now create a multi-chain wallet (EVM + Solana) inside your Telegram mini app with a single click. When you open the mini app, you’ll be auto-logged in, and a wallet is quietly generated for you in the background.

Global Connectivity

Global connectivity empowers end-users of Dynamic-powered embedded wallets to do something special: connect their wallets to any app in Web3 that supports WalletConnect. This means end-users are no longer confined to a single application or ecosystem. Whether they’re trading NFTs, engaging with DeFi protocols, or exploring the latest apps, they can effortlessly switch between different platforms without the need to create new wallets. We wrote a blog post to share our vision!

Bring Your Own JWT

You can now use Dynamic alongside any third-party authentication, by allowing you to exchange your token from a JWT issuer to 'sign-in' or 'link' to Dynamic. This means you can keep using other services while taking advantage of Dynamic’s product to enable Web3-based functionality and interactions! This is an enterprise-only feature so reach out if you need access, and learn more here.

No Transactional MFA (In Closed Beta)

Embedded wallets now ship with the option to disable MFA, meaning your end users can sign without friction. You can of course still choose to enable Passkeys or One Time Codes. This offering can be seen firsthand in our demo by choosing 'None' in the Transactional MFA section of the embedded wallet configuration. Learn more about our flexible options for MFA and No Transactional MFA in our blog post here.

New Profile Navigation

Through our recent design refresh, users can seamlessly switch between their profile, connected wallets, and settings. Navigating Dynamic-powered wallets has never been easier!

Hook Updates

We’ve introduced the ability to refresh both the user state and the entire SDK state, using useRefreshUser and useReinitialize respectively. In line with BYO JWT, you also now have useExternalAuth as a hook to sign-in with an external JWT. Lastly, you can now connect someone through a specific list of wallets with the useWalletOptions, allowing you to build your own UI around a specific set of wallets.

ENS Updates

We’ve added support for Base.eth ENS resolution.

Custom Cosmos Chains

Developers can add a custom Cosmos chain to their implementation of Dynamic directly from the frontend of their application. We detail how to do so in the Cosmos section of our chain documentation.

Account Abstraction

You can now specify your own bundler and paymaster RPC when initializing Zerodev. We’ve also added support for Kernel V3.1, and the ability for you to use a different ECDSA validator than the standard one.

Wallet Enhancements

Overall

We’ve moved methods from the connectors on wallets to each wallet object itself, making interacting with wallets a whole lot easier. Aditionally, you no longer need to type each method return type. All you need to do is type check the kind of wallet you’re dealing with (check out the upgrade guide for more info).

You can now also set the mobileExperience prop on a wallet-by-wallet basis, which we detail here. By default, it is set to ‘in-app-browser’, which means the connection will open within the wallet’s in-app browser. If you prefer to have users connect via WalletConnect, set this option to ‘redirect’.

If your user switches wallets while being logged in, and that new active wallet is not already linked to their current Dynamic account, you can trigger a modal to prompt them to link this wallet by setting `detectNewWalletsForLinking` as true in the DynamicContextProvider.

Solana

Multi-asset now supports Solana, and Solana embedded wallet transactions have been optimized.

EVM

Connecting on Metamask now prompts you to choose which account you’d like (if you have multiple accounts).

Bitcoin

We now provide a signMessageWithAddress method so you can sign with a specific address type (i.e. “signMessageWithAddress('some message', 'payment');”). We've also added in-app browser navigation support for Sats-Connect.

Starknet

Starknet Snaps from MetaMask are fully supported in V3, meaning you can use Starknet directly from MetaMask via their Snaps implementation.

Share this article

https://www.dynamic.xyz/blog/dynamic-sdk-v3
Matthew Foyle

Matt runs Developer Experience at Dynamic, and has worked at Twilio & Algolia among other developer tooling companies.

Related articles

Dynamic takes minutes to set up

(Oh, and we also offer a free multi-chain wallet adaptor)

Get started