Introducing the Dynamic Global Wallet Kit: A powerful toolset for developers to build ecosystems around their apps or chains!
One SDK for every wallet interaction
Dynamic combines authentication, smart wallets, and secure key management into one flexible SDK. Get the most multi-chain coverage across chains and third-party wallets.
Web3 login even your grandparents can use
Non-Custodial
Only your end-users have access to their keys
Passwordless
We use Passkeys to offer better security and experience
Integrated on/off ramps
Exchange fiat for crypto with a single-click
Available on EVM and Solana
Spin up wallets for any chain instantly
Multi-Chain Wallet Adapter
More chains, more wallets, more possibilities. Dynamic’s multi-chain wallet adapter supports more chains than any other Web3 auth provider.
Supports every EVM chain, SOL, Bitcoin, and more
Connects to hundreds of wallets and counting
Optimized for L2s, bridges and multi-chain experiences

Customize every aspect
of your end-user's Web3 journey
Build tailored onboarding flows, modify your adapter’s UI, use Webhooks for event tracking, and access a variety of features through our developer-friendly dashboard.

Themes controls
Customize your end-users onboarding experience through a simple dashboard with fonts, colors, themes and more.

Webhooks
Stay on top of and respond quickly to everything happening within your Dynamic environment.

Headless UI
Bring you own UI components while taking advantage of Dynamic's industry-leading SDK.
One wallet, two wallets,
red wallet, blue wallet
Your users have multiple wallets. Leverage our user profile widget help them consolidate wallets into a single account and manage their profile information in one location.
Multiple wallets in the same account
Wallet switch detection
Account merging

Identity orchestration,
not just authentication
Dynamic offers a myriad of integrations beyond authentication. Leverage advanced built-in access lists, NFT gating, and identity integrations with simple toggles in your developer dashboard.
Advanced NFT gating
Onboarding information capture
Allow lists
Set Dynamic up in 3 easy steps
2
Install the Dynamic NPM package
This takes a few seconds.
3
Set up your React snippet and customize
Once you set up your snippet, you can further customize things within your developer dashboard. You can also check out a working demo environment here:
npm i viem @dynamic-labs/sdk-react-core @dynamic-labs/ethereum
>
import {
DynamicContextProvider,
DynamicWidget,
} from "@dynamic-labs/sdk-react-core";
import { EthereumWalletConnectors } from "@dynamic-labs/ethereum";
export default function App() {
return (
<DynamicContextProvider
settings={{
// Find your environment id at https://app.dynamic.xyz/dashboard/developer
environmentId: "REPLACE-WITH-YOUR-ENVIRONMENT-ID",
walletConnectors: [EthereumWalletConnectors],
}}
>
<DynamicWidget />
</DynamicContextProvider>
);
};
1
Get an environment ID
Set up an account to get your environment ID.
Install the Dynamic NPM package
This takes a few seconds.
npm i viem @dynamic-labs/sdk-react-core @dynamic-labs/ethereum
>
2
Set up your React snippet and customize
Once you set up your snippet, you can further customize things within your developer dashboard.
import {
DynamicContextProvider,
DynamicWidget,
} from "@dynamic-labs/sdk-react-core";
import { EthereumWalletConnectors } from "@dynamic-labs/ethereum";
export default function App() {
return (
<DynamicContextProvider
settings={{
// Find your environment id at https://app.dynamic.xyz/dashboard/developer
environmentId: "REPLACE-WITH-YOUR-ENVIRONMENT-ID",
walletConnectors: [EthereumWalletConnectors],
}}
>
<DynamicWidget />
</DynamicContextProvider>
);
};
3
See a live demo
You can also check out a working demo environment here: