> ## Documentation Index
> Fetch the complete documentation index at: https://dynamic-docs-feat-sidebar-revamp.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Viem integration

We provide a lightweight viem extension to our client which introduces 2 simple methods to integrate with Viem:
`client.viem.createPublicClient()` and `client.viem.createWalletClient()`.

<Note>
  Since our client was built with a modular approach, this package comes as a
  standalone, so to reduce the client's package size.
</Note>

## Installation

Simply run the following in your terminal:

```
npm i @dynamic-labs/viem-extension
```

## Creating Viem clients

First, extend your client with our extension:

```typescript
import { ViemExtension } from '@dynamic-labs/viem-extension'

export const dynamicClient = createClient({
  environmentId: 'YOUR-ENVIRONMENT-ID',
}).extend(ViemExtension())
```

Now you can easily leverage all the power of Viem by creating wallet and public clients:

```typescript
import { mainnet } from 'viem/chains'

// Create a public client using one of viem's provided chains
const publicViemClient = dynamicClient.viem.createPublicClient({ chain: mainnet })

const lookupBalance = (address: `0x${string}`) =>
  publicViemClient.getBalance({ address })

// Create a wallet client
const walletViemClient = dynamicClient.viem.createWalletClient({
  wallet: dynamicClient.wallets.primary,
})

const signMessage = (message: string) =>
  walletViemClient.signMessage({ message })
```

You can read more about our viem integration [here](/react-native/package-references/viem-extension).
