Skip to main content

Recommended: JavaScript SDK with React Hooks

For new React apps, we recommend the JavaScript SDK with React Hooks (@dynamic-labs-sdk/react-hooks) instead of the legacy React SDK documented here. The JS SDK comes with many benefits such as a much smaller bundle size and other optimizations. Use the React quickstart (JavaScript SDK) to get started.

Check if a wallet is an Ethereum wallet

Before calling EVM-specific methods like getWalletClient(), you must narrow the wallet type with the isEthereumWallet guard. Without it, TypeScript won’t expose EVM methods and the call will throw at runtime with no hint about what went wrong.
isEthereumWallet is exported from @dynamic-labs/ethereum. It checks wallet.chain === 'EVM' and narrows the type to EthereumWallet, which exposes getWalletClient(), getPublicClient(), and other EVM-specific methods.

Read only actions/Viem Public Client

If you want to read data from the blockchain, you will want a “Public Client” (Viem terminology)

Write actions/Viem Wallet Client

If you want to write data to the blockchain, you will need a “Wallet Client” (Viem terminology), or a “Signer” (Ethers terminology). Both allow you to sign transactions with the private key.

Send multiple transactions atomically

If you want to send multiple transactions atomically, you can use the sendCalls method. This requires the wallet to support EIP-5792.

Examples

We’ve included a few examples of how to use the EVM wallet connector in this section:
Last modified on July 3, 2026