Dynamic Wallet Auth Integration
Dynamic is a platform for authenticating users through web3 wallets with additional options: social login, embedded wallets, multi-wallet support. It solves the user onboarding problem for those without a crypto wallet without losing compatibility with those who have one.
What Dynamic Provides
The Dynamic SDK handles the entire connection flow: displays a modal with a list of wallets (MetaMask, WalletConnect, Coinbase Wallet, hardware wallets), manages connection state, supports SIWE (Sign-In With Ethereum) for address ownership verification.
Key capabilities: social login (Google, Apple, email) with automatic embedded wallet creation, multi-wallet (user links multiple wallets to one account), support for multiple networks simultaneously.
Basic Integration
import { DynamicContextProvider, DynamicWidget } from "@dynamic-labs/sdk-react-core";
import { EthereumWalletConnectors } from "@dynamic-labs/ethereum";
function App() {
return (
<DynamicContextProvider
settings={{
environmentId: "YOUR_ENVIRONMENT_ID",
walletConnectors: [EthereumWalletConnectors],
}}
>
<DynamicWidget />
<YourApp />
</DynamicContextProvider>
);
}
Getting user data after connection:
import { useDynamicContext } from "@dynamic-labs/sdk-react-core";
function UserProfile() {
const { user, primaryWallet, handleLogOut } = useDynamicContext();
if (!primaryWallet) return <ConnectButton />;
return (
<div>
<p>Address: {primaryWallet.address}</p>
<p>Chain: {primaryWallet.chain}</p>
<button onClick={handleLogOut}>Disconnect</button>
</div>
);
}
Embedded Wallets and Social Login
For users without a wallet, Dynamic creates an embedded wallet (MPC-based, via Turnkey or similar). The user logs in through Google, Dynamic creates a wallet behind the scenes — the user only sees the address and can sign transactions without installing MetaMask.
Configuration:
settings={{
environmentId: "...",
walletConnectors: [EthereumWalletConnectors],
embeddedWallets: {
createOnLogin: "users-without-wallets",
requireUserPasswordOnCreate: false,
},
socialProviders: ["google", "apple", "email"],
}}
Integration with Dynamic takes 2–5 days for basic flow. Most time is spent on configuring policies in the Dynamic Dashboard, customizing UI (theme, language, wallet list), and integrating with the backend for JWT token verification that Dynamic issues after successful authentication.







