The SDK and above ships with Viem by default as it is much lighter than Ethers and is generally more performant.

We have also made viem a peerDependency to avoid bundling it multiple times, as other other packages such as wagmi also need it.

For the above reason, viem will be installed as a peerDependency when you install the SDK with npm, even if you want to use Ethers.

If you are using yarn instead of npm, even if you want to use Ethers, you will need to install viem manually:

yarn i viem

Dynamic only supports version v6+ of Ethers. In order to use it, simply import the ethers methods you need from @dynamic-labs/ethers-v6 directly in the component where you are using them.

npm i @dynamic-labs/ethers-v6
import { useDynamicContext } from '@dynamic-labs/sdk-react-core'
import { getWeb3Provider,getSigner, } from '@dynamic-labs/ethers-v6'

const { primaryWallet } = useDynamicContext()

const provider = await getWeb3Provider(primaryWallet)
const signer = await getSigner(primaryWallet)

// do your thing