Dynamic Client
The Dynamic Client is the object you create withcreateDynamicClient(). It is the gateway for all SDK methods: authentication, wallets, session, and events. You must create and initialize a client before calling any other SDK APIs. See Creating a Dynamic Client and Initializing the Dynamic Client.
Extensions
Extensions add support for a specific type of wallet or chain. Each extension enables a different way to discover and connect wallets (e.g. browser wallets, in-app wallets, or Dynamic embedded wallets). You add one or more extensions to your client depending on which chains you support — for example EVM, Solana, or ZeroDev (gasless EVM). There is no single “default” set; you choose the extensions that match your app. See Adding extensions and the chain-specific pages (e.g. Adding EVM Extensions).Gas and sponsorship
Gas is the fee paid to the network to execute transactions. By default, gas is not sponsored — your users pay gas (e.g. in ETH or SOL) when they sign and send transactions. If you want users to avoid paying gas, you can use sponsorship (your app or a paymaster pays). The SDK supports:- ZeroDev (EVM): account abstraction and gas sponsorship for Ethereum-compatible chains.
- SVM gas sponsorship (Solana): sponsor transaction fees on Solana.
WalletConnect vs other connections
Users can connect wallets in several ways:- Browser / in-app wallets (e.g. MetaMask, Phantom): discovered via extensions (EIP-6963,
window.ethereum, or similar). The user already has a wallet; your app connects to it. - WalletConnect: a protocol that lets users connect a wallet from another device (e.g. a mobile wallet) by scanning a QR code or using a deep link. Add it when you need cross-device or mobile-to-web flows.
- Dynamic embedded wallets: created and managed by Dynamic (no seed phrase for the user). Enabled via chain-specific extensions (e.g. WAAS EVM).
Connect vs verify
Connect means linking a wallet to the current session so your app can use it. The wallet account is available in the session but is not yet tied to a Dynamic user. Verify means proving ownership of that wallet and associating it with a Dynamic user. Once verified, the wallet is persisted on Dynamic and linked to the user’s identity. You can connect and verify in one step, connect first and verify later, or only connect (e.g. for guest checkout). Full details: Connecting and Verifying a Wallet.Next steps
- Quickstart — Install and run the SDK.
- Creating a Dynamic Client — Create and configure your client.
- Adding extensions — Add chain and wallet support.