> ## Documentation Index
> Fetch the complete documentation index at: https://crossmint-wallets-docs-2-5.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# EVMSmartWallet

## Implements

* `ViemWallet`

## Constructors

### new EVMSmartWallet()

> **new EVMSmartWallet**(`chain`, `apiClient`, `address`, `adminSigner`, `callbacks`): [`EVMSmartWallet`](./EVMSmartWallet)

#### Parameters

| Parameter     | Type                                                                                   |
| ------------- | -------------------------------------------------------------------------------------- |
| `chain`       | [`EVMSmartWalletChain`](../type-aliases/EVMSmartWalletChain)                           |
| `apiClient`   | `ApiClient`                                                                            |
| `address`     | \`0x\$\{string}\`                                                                      |
| `adminSigner` | `never` \| `object` & `object` & `object` \| `object` & `object` & `object` \| `never` |
| `callbacks`   | `Callbacks`                                                                            |

#### Returns

[`EVMSmartWallet`](./EVMSmartWallet)

#### Defined in

[packages/wallets/src/evm/wallet.ts:113](https://github.com/Crossmint/crossmint-sdk/blob/f062aee0102e89a061357f3719be9daa171ee05b/packages/wallets/src/evm/wallet.ts#L113)

## Properties

| Property                                      | Modifier   | Type                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | Defined in                                                                                                                                                                                                                                                   |
| --------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `chain`                                       | `readonly` | [`EVMSmartWalletChain`](../type-aliases/EVMSmartWalletChain)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | [packages/wallets/src/evm/wallet.ts:114](https://github.com/Crossmint/crossmint-sdk/blob/f062aee0102e89a061357f3719be9daa171ee05b/packages/wallets/src/evm/wallet.ts#L114)                                                                                   |
| `publicClient`                                | `readonly` | `object`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | [packages/wallets/src/evm/wallet.ts:111](https://github.com/Crossmint/crossmint-sdk/blob/f062aee0102e89a061357f3719be9daa171ee05b/packages/wallets/src/evm/wallet.ts#L111)                                                                                   |
| `publicClient.account`                        | `public`   | `undefined`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | The Account of the Client.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/createClient.d.ts:63        |
| `publicClient.batch?`                         | `public`   | `object`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Flags for batch settings.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/createClient.d.ts:65        |
| `publicClient.batch.multicall?`               | `public`   | `boolean` \| `object`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | Toggle to enable `eth_call` multicall aggregation.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/createClient.d.ts:19        |
| `publicClient.cacheTime`                      | `public`   | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Time (in ms) that cached data will remain in memory.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/createClient.d.ts:67        |
| `publicClient.call`                           | `public`   | (`parameters`: `CallParameters`\<`undefined` \| `Chain`>) => `Promise`\<`CallReturnType`>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | Executes a new message call immediately without submitting a transaction to the network. - Docs: [https://viem.sh/docs/actions/public/call](https://viem.sh/docs/actions/public/call) - JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call) **Example** `import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const data = await client.call({ account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', })`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:86   |
| `publicClient.ccipRead?`                      | `public`   | `false` \| `object`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | [CCIP Read](https://eips.ethereum.org/EIPS/eip-3668) configuration.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/createClient.d.ts:69        |
| `publicClient.chain`                          | `public`   | `undefined` \| `Chain`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | Chain for the client.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/createClient.d.ts:71        |
| `publicClient.createAccessList`               | `public`   | (`parameters`: `CreateAccessListParameters`\<`undefined` \| `Chain`>) => `Promise`\<`object`>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | Creates an EIP-2930 access list that you can include in a transaction. - Docs: [https://viem.sh/docs/actions/public/createAccessList](https://viem.sh/docs/actions/public/createAccessList) - JSON-RPC Methods: `eth_createAccessList` **Example** `import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const data = await client.createAccessList({ data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', })`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:110  |
| `publicClient.createBlockFilter`              | `public`   | () => `Promise`\<`object`>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | Creates a Filter to listen for new block hashes that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges). - Docs: [https://viem.sh/docs/actions/public/createBlockFilter](https://viem.sh/docs/actions/public/createBlockFilter) - JSON-RPC Methods: [`eth_newBlockFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newBlockFilter) **Example** `import { createPublicClient, createBlockFilter, http } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const filter = await createBlockFilter(client) // { id: "0x345a6572337856574a76364e457a4366", type: 'block' }`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:130  |
| `publicClient.createContractEventFilter`      | `public`   | \<`abi`, `eventName`, `args`, `strict`, `fromBlock`, `toBlock`>(`args`: `CreateContractEventFilterParameters`\<`abi`, `eventName`, `args`, `strict`, `fromBlock`, `toBlock`>) => `Promise`\<`CreateContractEventFilterReturnType`\<`abi`, `eventName`, `args`, `strict`, `fromBlock`, `toBlock`>>                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Creates a Filter to retrieve event logs that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges) or [`getFilterLogs`](https://viem.sh/docs/actions/public/getFilterLogs). - Docs: [https://viem.sh/docs/contract/createContractEventFilter](https://viem.sh/docs/contract/createContractEventFilter) **Example** `import { createPublicClient, http, parseAbi } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const filter = await client.createContractEventFilter({ abi: parseAbi(['event Transfer(address indexed, address indexed, uint256)']), })`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:151  |
| `publicClient.createEventFilter`              | `public`   | \<`abiEvent`, `abiEvents`, `strict`, `fromBlock`, `toBlock`, `_EventName`, `_Args`>(`args`?: `CreateEventFilterParameters`\<`abiEvent`, `abiEvents`, `strict`, `fromBlock`, `toBlock`, `_EventName`, `_Args`>) => `Promise`\<\{ \[K in string \| number \| symbol]: Filter\<"event", abiEvents, \_EventName, \_Args, strict, fromBlock, toBlock>\[K] }>                                                                                                                                                                                                                                                                                                                                                                                                            | Creates a [`Filter`](https://viem.sh/docs/glossary/types#filter) to listen for new events that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges). - Docs: [https://viem.sh/docs/actions/public/createEventFilter](https://viem.sh/docs/actions/public/createEventFilter) - JSON-RPC Methods: [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) **Example** `import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const filter = await client.createEventFilter({ address: '0xfba3912ca04dd458c843e2ee08967fc04f3579c2', })`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:173  |
| `publicClient.createPendingTransactionFilter` | `public`   | () => `Promise`\<`object`>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | Creates a Filter to listen for new pending transaction hashes that can be used with [`getFilterChanges`](https://viem.sh/docs/actions/public/getFilterChanges). - Docs: [https://viem.sh/docs/actions/public/createPendingTransactionFilter](https://viem.sh/docs/actions/public/createPendingTransactionFilter) - JSON-RPC Methods: [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter) **Example** `import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const filter = await client.createPendingTransactionFilter() // { id: "0x345a6572337856574a76364e457a4366", type: 'transaction' }`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:193  |
| `publicClient.estimateContractGas`            | `public`   | \<`chain`, `abi`, `functionName`, `args`>(`args`: `EstimateContractGasParameters`\<`abi`, `functionName`, `args`, `chain`>) => `Promise`\<`bigint`>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | Estimates the gas required to successfully execute a contract write function call. - Docs: [https://viem.sh/docs/contract/estimateContractGas](https://viem.sh/docs/contract/estimateContractGas) **Remarks** Internally, uses a [Public Client](https://viem.sh/docs/clients/public) to call the [`estimateGas` action](https://viem.sh/docs/actions/public/estimateGas) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData). **Example** `import { createPublicClient, http, parseAbi } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const gas = await client.estimateContractGas({ address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', abi: parseAbi(['function mint() public']), functionName: 'mint', account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', })`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:220  |
| `publicClient.estimateFeesPerGas`             | `public`   | \<`chainOverride`, `type`>(`args`?: `EstimateFeesPerGasParameters`\<`undefined` \| `Chain`, `chainOverride`, `type`>) => `Promise`\<`EstimateFeesPerGasReturnType`\<`type`>>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Returns an estimate for the fees per gas for a transaction to be included in the next block. - Docs: [https://viem.sh/docs/actions/public/estimateFeesPerGas](https://viem.sh/docs/actions/public/estimateFeesPerGas) **Example** `import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const maxPriorityFeePerGas = await client.estimateFeesPerGas() // { maxFeePerGas: ..., maxPriorityFeePerGas: ... }`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:658  |
| `publicClient.estimateGas`                    | `public`   | (`args`: `EstimateGasParameters`\<`undefined` \| `Chain`>) => `Promise`\<`bigint`>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Estimates the gas necessary to complete a transaction without submitting it to the network. - Docs: [https://viem.sh/docs/actions/public/estimateGas](https://viem.sh/docs/actions/public/estimateGas) - JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas) **Example** `import { createPublicClient, http, parseEther } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const gasEstimate = await client.estimateGas({ account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e', to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', value: parseEther('1'), })`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:244  |
| `publicClient.estimateMaxPriorityFeePerGas`   | `public`   | \<`chainOverride`>(`args`?: `object`) => `Promise`\<`bigint`>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | Returns an estimate for the max priority fee per gas (in wei) for a transaction to be included in the next block. - Docs: [https://viem.sh/docs/actions/public/estimateMaxPriorityFeePerGas](https://viem.sh/docs/actions/public/estimateMaxPriorityFeePerGas) **Example** `import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const maxPriorityFeePerGas = await client.estimateMaxPriorityFeePerGas() // 10000000n`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:850  |
| `publicClient.extend`                         | `public`   | \<`client`>(`fn`: (`client`) => `client`) => `Client`\<`HttpTransport`, `undefined` \| `Chain`, `undefined`, `PublicRpcSchema`, \{ \[K in string \| number \| symbol]: client\[K] } & `PublicActions`\<`HttpTransport`, `undefined` \| `Chain`>>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/createClient.d.ts:59        |
| `publicClient.getBalance`                     | `public`   | (`args`: `GetBalanceParameters`) => `Promise`\<`bigint`>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Returns the balance of an address in wei. - Docs: [https://viem.sh/docs/actions/public/getBalance](https://viem.sh/docs/actions/public/getBalance) - JSON-RPC Methods: [`eth_getBalance`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getbalance) **Remarks** You can convert the balance to ether units with [`formatEther`](https://viem.sh/docs/utilities/formatEther). `const balance = await getBalance(client, { address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e', blockTag: 'safe' }) const balanceAsEther = formatEther(balance) // "6.942"` **Example** `import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const balance = await client.getBalance({ address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e', }) // 10000000000000000000000n (wei)`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:279  |
| `publicClient.getBlobBaseFee`                 | `public`   | () => `Promise`\<`bigint`>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | Returns the base fee per blob gas in wei. - Docs: [https://viem.sh/docs/actions/public/getBlobBaseFee](https://viem.sh/docs/actions/public/getBlobBaseFee) - JSON-RPC Methods: [`eth_blobBaseFee`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blobBaseFee) **Example** `import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' import { getBlobBaseFee } from 'viem/public' const client = createPublicClient({ chain: mainnet, transport: http(), }) const blobBaseFee = await client.getBlobBaseFee()`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:300  |
| `publicClient.getBlock`                       | `public`   | \<`includeTransactions`, `blockTag`>(`args`?: `GetBlockParameters`\<`includeTransactions`, `blockTag`>) => `Promise`\<`object`>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | Returns information about a block at a block number, hash, or tag. - Docs: [https://viem.sh/docs/actions/public/getBlock](https://viem.sh/docs/actions/public/getBlock) - Examples: [https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks\_fetching-blocks](https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_fetching-blocks) - JSON-RPC Methods: - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) for `blockNumber` & `blockTag`. - Calls [`eth_getBlockByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbyhash) for `blockHash`. **Example** `import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const block = await client.getBlock()`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:323  |
| `publicClient.getBlockNumber`                 | `public`   | (`args`?: `GetBlockNumberParameters`) => `Promise`\<`bigint`>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | Returns the number of the most recent block seen. - Docs: [https://viem.sh/docs/actions/public/getBlockNumber](https://viem.sh/docs/actions/public/getBlockNumber) - Examples: [https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks\_fetching-blocks](https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_fetching-blocks) - JSON-RPC Methods: [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber) **Example** `import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const blockNumber = await client.getBlockNumber() // 69420n`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:345  |
| `publicClient.getBlockTransactionCount`       | `public`   | (`args`?: `GetBlockTransactionCountParameters`) => `Promise`\<`number`>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | Returns the number of Transactions at a block number, hash, or tag. - Docs: [https://viem.sh/docs/actions/public/getBlockTransactionCount](https://viem.sh/docs/actions/public/getBlockTransactionCount) - JSON-RPC Methods: - Calls [`eth_getBlockTransactionCountByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblocktransactioncountbynumber) for `blockNumber` & `blockTag`. - Calls [`eth_getBlockTransactionCountByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblocktransactioncountbyhash) for `blockHash`. **Example** `import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const count = await client.getBlockTransactionCount()`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:367  |
| `publicClient.getBytecode`                    | `public`   | (`args`: `GetCodeParameters`) => `Promise`\<`GetCodeReturnType`>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | **Deprecated** Use `getCode` instead.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:369  |
| `publicClient.getChainId`                     | `public`   | () => `Promise`\<`number`>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | Returns the chain ID associated with the current network. - Docs: [https://viem.sh/docs/actions/public/getChainId](https://viem.sh/docs/actions/public/getChainId) - JSON-RPC Methods: [`eth_chainId`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_chainid) **Example** `import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const chainId = await client.getChainId() // 1`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:389  |
| `publicClient.getCode`                        | `public`   | (`args`: `GetCodeParameters`) => `Promise`\<`GetCodeReturnType`>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | Retrieves the bytecode at an address. - Docs: [https://viem.sh/docs/contract/getCode](https://viem.sh/docs/contract/getCode) - JSON-RPC Methods: [`eth_getCode`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getcode) **Example** `import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const code = await client.getCode({ address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', })`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:411  |
| `publicClient.getContractEvents`              | `public`   | \<`abi`, `eventName`, `strict`, `fromBlock`, `toBlock`>(`args`: `GetContractEventsParameters`\<`abi`, `eventName`, `strict`, `fromBlock`, `toBlock`>) => `Promise`\<`GetContractEventsReturnType`\<`abi`, `eventName`, `strict`, `fromBlock`, `toBlock`>>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | Returns a list of event logs emitted by a contract. - Docs: [https://viem.sh/docs/actions/public/getContractEvents](https://viem.sh/docs/actions/public/getContractEvents) - JSON-RPC Methods: [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) **Example** `import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' import { wagmiAbi } from './abi' const client = createPublicClient({ chain: mainnet, transport: http(), }) const logs = await client.getContractEvents(client, { address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', abi: wagmiAbi, eventName: 'Transfer' })`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:437  |
| `publicClient.getEip712Domain`                | `public`   | (`args`: `GetEip712DomainParameters`) => `Promise`\<`GetEip712DomainReturnType`>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | Reads the EIP-712 domain from a contract, based on the ERC-5267 specification. **Example** `import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const domain = await client.getEip712Domain({ address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', }) // { // domain: { // name: 'ExampleContract', // version: '1', // chainId: 1, // verifyingContract: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', // }, // fields: '0x0f', // extensions: [], // }`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:470  |
| `publicClient.getEnsAddress`                  | `public`   | (`args`: `object`) => `Promise`\<`GetEnsAddressReturnType`>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | Gets address for ENS name. - Docs: [https://viem.sh/docs/ens/actions/getEnsAddress](https://viem.sh/docs/ens/actions/getEnsAddress) - Examples: [https://stackblitz.com/github/wevm/viem/tree/main/examples/ens](https://stackblitz.com/github/wevm/viem/tree/main/examples/ens) **Remarks** Calls `resolve(bytes, bytes)` on ENS Universal Resolver Contract. Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this. **Example** `import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' import { normalize } from 'viem/ens' const client = createPublicClient({ chain: mainnet, transport: http(), }) const ensAddress = await client.getEnsAddress({ name: normalize('wevm.eth'), }) // '0xd2135CfB216b74109775236E36d4b433F1DF507B'`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:499  |
| `publicClient.getEnsAvatar`                   | `public`   | (`args`: `object`) => `Promise`\<`GetEnsAvatarReturnType`>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | Gets the avatar of an ENS name. - Docs: [https://viem.sh/docs/ens/actions/getEnsAvatar](https://viem.sh/docs/ens/actions/getEnsAvatar) - Examples: [https://stackblitz.com/github/wevm/viem/tree/main/examples/ens](https://stackblitz.com/github/wevm/viem/tree/main/examples/ens) **Remarks** Calls [`getEnsText`](https://viem.sh/docs/ens/actions/getEnsText) with `key` set to `'avatar'`. Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this. **Example** `import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' import { normalize } from 'viem/ens' const client = createPublicClient({ chain: mainnet, transport: http(), }) const ensAvatar = await client.getEnsAvatar({ name: normalize('wevm.eth'), }) // 'https://ipfs.io/ipfs/Qma8mnp6xV3J2cRNf3mTth5C8nV11CAnceVinc3y8jSbio'`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:528  |
| `publicClient.getEnsName`                     | `public`   | (`args`: `object`) => `Promise`\<`GetEnsNameReturnType`>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Gets primary name for specified address. - Docs: [https://viem.sh/docs/ens/actions/getEnsName](https://viem.sh/docs/ens/actions/getEnsName) - Examples: [https://stackblitz.com/github/wevm/viem/tree/main/examples/ens](https://stackblitz.com/github/wevm/viem/tree/main/examples/ens) **Remarks** Calls `reverse(bytes)` on ENS Universal Resolver Contract to "reverse resolve" the address to the primary ENS name. **Example** `import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const ensName = await client.getEnsName({ address: '0xd2135CfB216b74109775236E36d4b433F1DF507B', }) // 'wevm.eth'`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:554  |
| `publicClient.getEnsResolver`                 | `public`   | (`args`: `object`) => `Promise`\<\`0x\$\{string}\`>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | Gets resolver for ENS name. - Docs: [https://viem.sh/docs/ens/actions/getEnsResolver](https://viem.sh/docs/ens/actions/getEnsResolver) - Examples: [https://stackblitz.com/github/wevm/viem/tree/main/examples/ens](https://stackblitz.com/github/wevm/viem/tree/main/examples/ens) **Remarks** Calls `findResolver(bytes)` on ENS Universal Resolver Contract to retrieve the resolver of an ENS name. Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this. **Example** `import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' import { normalize } from 'viem/ens' const client = createPublicClient({ chain: mainnet, transport: http(), }) const resolverAddress = await client.getEnsResolver({ name: normalize('wevm.eth'), }) // '0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41'`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:583  |
| `publicClient.getEnsText`                     | `public`   | (`args`: `object`) => `Promise`\<`GetEnsTextReturnType`>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Gets a text record for specified ENS name. - Docs: [https://viem.sh/docs/ens/actions/getEnsResolver](https://viem.sh/docs/ens/actions/getEnsResolver) - Examples: [https://stackblitz.com/github/wevm/viem/tree/main/examples/ens](https://stackblitz.com/github/wevm/viem/tree/main/examples/ens) **Remarks** Calls `resolve(bytes, bytes)` on ENS Universal Resolver Contract. Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to [normalize ENS names](https://docs.ens.domains/contract-api-reference/name-processing#normalising-names) with [UTS-46 normalization](https://unicode.org/reports/tr46) before passing them to `getEnsAddress`. You can use the built-in [`normalize`](https://viem.sh/docs/ens/utilities/normalize) function for this. **Example** `import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' import { normalize } from 'viem/ens' const client = createPublicClient({ chain: mainnet, transport: http(), }) const twitterRecord = await client.getEnsText({ name: normalize('wevm.eth'), key: 'com.twitter', }) // 'wevm_dev'`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:613  |
| `publicClient.getFeeHistory`                  | `public`   | (`args`: `GetFeeHistoryParameters`) => `Promise`\<`GetFeeHistoryReturnType`>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Returns a collection of historical gas information. - Docs: [https://viem.sh/docs/actions/public/getFeeHistory](https://viem.sh/docs/actions/public/getFeeHistory) - JSON-RPC Methods: [`eth_feeHistory`](https://docs.alchemy.com/reference/eth-feehistory) **Example** `import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const feeHistory = await client.getFeeHistory({ blockCount: 4, rewardPercentiles: [25, 75], })`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:636  |
| `publicClient.getFilterChanges`               | `public`   | \<`filterType`, `abi`, `eventName`, `strict`, `fromBlock`, `toBlock`>(`args`: `GetFilterChangesParameters`\<`filterType`, `abi`, `eventName`, `strict`, `fromBlock`, `toBlock`>) => `Promise`\<`GetFilterChangesReturnType`\<`filterType`, `abi`, `eventName`, `strict`, `fromBlock`, `toBlock`>>                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Returns a list of logs or hashes based on a [Filter](.//docs/glossary/terms#filter) since the last time it was called. - Docs: [https://viem.sh/docs/actions/public/getFilterChanges](https://viem.sh/docs/actions/public/getFilterChanges) - JSON-RPC Methods: [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges) **Remarks** A Filter can be created from the following actions: - [`createBlockFilter`](https://viem.sh/docs/actions/public/createBlockFilter) - [`createContractEventFilter`](https://viem.sh/docs/contract/createContractEventFilter) - [`createEventFilter`](https://viem.sh/docs/actions/public/createEventFilter) - [`createPendingTransactionFilter`](https://viem.sh/docs/actions/public/createPendingTransactionFilter) Depending on the type of filter, the return value will be different: - If the filter was created with `createContractEventFilter` or `createEventFilter`, it returns a list of logs. - If the filter was created with `createPendingTransactionFilter`, it returns a list of transaction hashes. - If the filter was created with `createBlockFilter`, it returns a list of block hashes. **Examples** `// Blocks import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const filter = await client.createBlockFilter() const hashes = await client.getFilterChanges({ filter })` `// Contract Events import { createPublicClient, http, parseAbi } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const filter = await client.createContractEventFilter({ address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', abi: parseAbi(['event Transfer(address indexed, address indexed, uint256)']), eventName: 'Transfer', }) const logs = await client.getFilterChanges({ filter })` `// Raw Events import { createPublicClient, http, parseAbiItem } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const filter = await client.createEventFilter({ address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', event: parseAbiItem('event Transfer(address indexed, address indexed, uint256)'), }) const logs = await client.getFilterChanges({ filter })` `// Transactions import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const filter = await client.createPendingTransactionFilter() const hashes = await client.getFilterChanges({ filter })` | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:737  |
| `publicClient.getFilterLogs`                  | `public`   | \<`abi`, `eventName`, `strict`, `fromBlock`, `toBlock`>(`args`: `GetFilterLogsParameters`\<`abi`, `eventName`, `strict`, `fromBlock`, `toBlock`>) => `Promise`\<`GetFilterLogsReturnType`\<`abi`, `eventName`, `strict`, `fromBlock`, `toBlock`>>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Returns a list of event logs since the filter was created. - Docs: [https://viem.sh/docs/actions/public/getFilterLogs](https://viem.sh/docs/actions/public/getFilterLogs) - JSON-RPC Methods: [`eth_getFilterLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterlogs) **Remarks** `getFilterLogs` is only compatible with **event filters**. **Example** `import { createPublicClient, http, parseAbiItem } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const filter = await client.createEventFilter({ address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', event: parseAbiItem('event Transfer(address indexed, address indexed, uint256)'), }) const logs = await client.getFilterLogs({ filter })`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:764  |
| `publicClient.getGasPrice`                    | `public`   | () => `Promise`\<`bigint`>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | Returns the current price of gas (in wei). - Docs: [https://viem.sh/docs/actions/public/getGasPrice](https://viem.sh/docs/actions/public/getGasPrice) - JSON-RPC Methods: [`eth_gasPrice`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gasprice) **Example** `import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const gasPrice = await client.getGasPrice()`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:783  |
| `publicClient.getLogs`                        | `public`   | \<`abiEvent`, `abiEvents`, `strict`, `fromBlock`, `toBlock`>(`args`?: `GetLogsParameters`\<`abiEvent`, `abiEvents`, `strict`, `fromBlock`, `toBlock`>) => `Promise`\<`GetLogsReturnType`\<`abiEvent`, `abiEvents`, `strict`, `fromBlock`, `toBlock`>>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | Returns a list of event logs matching the provided parameters. - Docs: [https://viem.sh/docs/actions/public/getLogs](https://viem.sh/docs/actions/public/getLogs) - Examples: [https://stackblitz.com/github/wevm/viem/tree/main/examples/logs\_event-logs](https://stackblitz.com/github/wevm/viem/tree/main/examples/logs_event-logs) - JSON-RPC Methods: [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) **Example** `import { createPublicClient, http, parseAbiItem } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const logs = await client.getLogs()`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:804  |
| `publicClient.getProof`                       | `public`   | (`args`: `GetProofParameters`) => `Promise`\<`GetProofReturnType`>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Returns the account and storage values of the specified account including the Merkle-proof. - Docs: [https://viem.sh/docs/actions/public/getProof](https://viem.sh/docs/actions/public/getProof) - JSON-RPC Methods: - Calls [`eth_getProof`](https://eips.ethereum.org/EIPS/eip-1186) **Example** `import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const block = await client.getProof({ address: '0x...', storageKeys: ['0x...'], })`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:829  |
| `publicClient.getStorageAt`                   | `public`   | (`args`: `GetStorageAtParameters`) => `Promise`\<`GetStorageAtReturnType`>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | Returns the value from a storage slot at a given address. - Docs: [https://viem.sh/docs/contract/getStorageAt](https://viem.sh/docs/contract/getStorageAt) - JSON-RPC Methods: [`eth_getStorageAt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getstorageat) **Example** `import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' import { getStorageAt } from 'viem/contract' const client = createPublicClient({ chain: mainnet, transport: http(), }) const code = await client.getStorageAt({ address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', slot: toHex(0), })`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:874  |
| `publicClient.getTransaction`                 | `public`   | \<`blockTag`>(`args`: `GetTransactionParameters`\<`blockTag`>) => `Promise`\<`object` \| `object` \| `object` \| `object` \| `object`>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | Returns information about a [Transaction](https://viem.sh/docs/glossary/terms#transaction) given a hash or block identifier. - Docs: [https://viem.sh/docs/actions/public/getTransaction](https://viem.sh/docs/actions/public/getTransaction) - Example: [https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions\_fetching-transactions](https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_fetching-transactions) - JSON-RPC Methods: [`eth_getTransactionByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionByHash) **Example** `import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const transaction = await client.getTransaction({ hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d', })`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:897  |
| `publicClient.getTransactionConfirmations`    | `public`   | (`args`: `GetTransactionConfirmationsParameters`\<`undefined` \| `Chain`>) => `Promise`\<`bigint`>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Returns the number of blocks passed (confirmations) since the transaction was processed on a block. - Docs: [https://viem.sh/docs/actions/public/getTransactionConfirmations](https://viem.sh/docs/actions/public/getTransactionConfirmations) - Example: [https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions\_fetching-transactions](https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_fetching-transactions) - JSON-RPC Methods: [`eth_getTransactionConfirmations`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionConfirmations) **Example** `import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const confirmations = await client.getTransactionConfirmations({ hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d', })`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:920  |
| `publicClient.getTransactionCount`            | `public`   | (`args`: `GetTransactionCountParameters`) => `Promise`\<`number`>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Returns the number of [Transactions](https://viem.sh/docs/glossary/terms#transaction) an Account has broadcast / sent. - Docs: [https://viem.sh/docs/actions/public/getTransactionCount](https://viem.sh/docs/actions/public/getTransactionCount) - JSON-RPC Methods: [`eth_getTransactionCount`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gettransactioncount) **Example** `import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const transactionCount = await client.getTransactionCount({ address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e', })`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:942  |
| `publicClient.getTransactionReceipt`          | `public`   | (`args`: `GetTransactionReceiptParameters`) => `Promise`\<`TransactionReceipt`>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | Returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt) given a [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. - Docs: [https://viem.sh/docs/actions/public/getTransactionReceipt](https://viem.sh/docs/actions/public/getTransactionReceipt) - Example: [https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions\_fetching-transactions](https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_fetching-transactions) - JSON-RPC Methods: [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt) **Example** `import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const transactionReceipt = await client.getTransactionReceipt({ hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d', })`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:965  |
| `publicClient.key`                            | `public`   | `string`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | A key for the client.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/createClient.d.ts:73        |
| `publicClient.multicall`                      | `public`   | \<`contracts`, `allowFailure`>(`args`: `MulticallParameters`\<`contracts`, `allowFailure`>) => `Promise`\<`MulticallReturnType`\<`contracts`, `allowFailure`>>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | Similar to [`readContract`](https://viem.sh/docs/contract/readContract), but batches up multiple functions on a contract in a single RPC call via the [`multicall3` contract](https://github.com/mds1/multicall). - Docs: [https://viem.sh/docs/contract/multicall](https://viem.sh/docs/contract/multicall) **Example** `import { createPublicClient, http, parseAbi } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const abi = parseAbi([ 'function balanceOf(address) view returns (uint256)', 'function totalSupply() view returns (uint256)', ]) const result = await client.multicall({ contracts: [ { address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', abi, functionName: 'balanceOf', args: ['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'], }, { address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', abi, functionName: 'totalSupply', }, ], }) // [{ result: 424122n, status: 'success' }, { result: 1000000n, status: 'success' }]`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:1003 |
| `publicClient.name`                           | `public`   | `string`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | A name for the client.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/createClient.d.ts:75        |
| `publicClient.pollingInterval`                | `public`   | `number`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Frequency (in ms) for polling enabled actions & events. Defaults to 4\_000 milliseconds.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/createClient.d.ts:77        |
| `publicClient.prepareTransactionRequest`      | `public`   | \<`request`, `chainOverride`, `accountOverride`>(`args`: `PrepareTransactionRequestParameters`\<`undefined` \| `Chain`, `undefined` \| `Account`, `chainOverride`, `accountOverride`, `request`>) => `Promise`\<\{ \[K in string \| number \| symbol]: (UnionRequiredBy\<Extract\<UnionOmit\<(...), (...)> & ((...) extends (...) ? (...) : (...)) & ((...) extends (...) ? (...) : (...)), IsNever\<(...)> extends true ? unknown : ExactPartial\<(...)>> & Object, ParameterTypeToParameters\<request\["parameters"] extends readonly PrepareTransactionRequestParameterType\[] ? any\[any]\[number] : "type" \| "gas" \| "nonce" \| "blobVersionedHashes" \| "fees" \| "chainId">> & (unknown extends request\["kzg"] ? Object : Pick\<request, "kzg">))\[K] }> | Prepares a transaction request for signing. - Docs: [https://viem.sh/docs/actions/wallet/prepareTransactionRequest](https://viem.sh/docs/actions/wallet/prepareTransactionRequest) **Examples** `import { createWalletClient, custom } from 'viem' import { mainnet } from 'viem/chains' const client = createWalletClient({ chain: mainnet, transport: custom(window.ethereum), }) const request = await client.prepareTransactionRequest({ account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e', to: '0x0000000000000000000000000000000000000000', value: 1n, })` `// Account Hoisting import { createWalletClient, http } from 'viem' import { privateKeyToAccount } from 'viem/accounts' import { mainnet } from 'viem/chains' const client = createWalletClient({ account: privateKeyToAccount('0x…'), chain: mainnet, transport: custom(window.ethereum), }) const request = await client.prepareTransactionRequest({ to: '0x0000000000000000000000000000000000000000', value: 1n, })`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:1042 |
| `publicClient.readContract`                   | `public`   | \<`abi`, `functionName`, `args`>(`args`: `ReadContractParameters`\<`abi`, `functionName`, `args`>) => `Promise`\<`ReadContractReturnType`\<`abi`, `functionName`, `args`>>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | Calls a read-only function on a contract, and returns the response. - Docs: [https://viem.sh/docs/contract/readContract](https://viem.sh/docs/contract/readContract) - Examples: [https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts\_reading-contracts](https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_reading-contracts) **Remarks** A "read-only" function (constant function) on a Solidity contract is denoted by a `view` or `pure` keyword. They can only read the state of the contract, and cannot make any changes to it. Since read-only methods do not change the state of the contract, they do not require any gas to be executed, and can be called by any user without the need to pay for gas. Internally, uses a [Public Client](https://viem.sh/docs/clients/public) to call the [`call` action](https://viem.sh/docs/actions/public/call) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData). **Example** `import { createPublicClient, http, parseAbi } from 'viem' import { mainnet } from 'viem/chains' import { readContract } from 'viem/contract' const client = createPublicClient({ chain: mainnet, transport: http(), }) const result = await client.readContract({ address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', abi: parseAbi(['function balanceOf(address) view returns (uint256)']), functionName: 'balanceOf', args: ['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'], }) // 424122n`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:1074 |
| `publicClient.request`                        | `public`   | `EIP1193RequestFn`\<`PublicRpcSchema`>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | Request function wrapped with friendly error handling                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/createClient.d.ts:79        |
| `publicClient.sendRawTransaction`             | `public`   | (`args`: `SendRawTransactionParameters`) => `Promise`\<\`0x\$\{string}\`>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | Sends a **signed** transaction to the network - Docs: [https://viem.sh/docs/actions/wallet/sendRawTransaction](https://viem.sh/docs/actions/wallet/sendRawTransaction) - JSON-RPC Method: [`eth_sendRawTransaction`](https://ethereum.github.io/execution-apis/api-documentation/) **Example** `import { createWalletClient, custom } from 'viem' import { mainnet } from 'viem/chains' import { sendRawTransaction } from 'viem/wallet' const client = createWalletClient({ chain: mainnet, transport: custom(window.ethereum), }) const hash = await client.sendRawTransaction({ serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33' })`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:1099 |
| `publicClient.simulate`                       | `public`   | \<`calls`>(`args`: `SimulateBlocksParameters`\<`calls`>) => `Promise`\<`SimulateBlocksReturnType`\<`calls`>>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | **Deprecated** Use `simulateBlocks` instead.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:1103 |
| `publicClient.simulateBlocks`                 | `public`   | \<`calls`>(`args`: `SimulateBlocksParameters`\<`calls`>) => `Promise`\<`SimulateBlocksReturnType`\<`calls`>>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Simulates a set of calls on block(s) with optional block and state overrides. **Example** `import { createPublicClient, http, parseEther } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const result = await client.simulateBlocks({ blocks: [{ blockOverrides: { number: 69420n, }, calls: [{ { account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929', data: '0xdeadbeef', to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', }, { account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929', to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', value: parseEther('1'), }, }], stateOverrides: [{ address: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929', balance: parseEther('10'), }], }] })`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:1146 |
| `publicClient.simulateCalls`                  | `public`   | \<`calls`>(`args`: `SimulateCallsParameters`\<`calls`>) => `Promise`\<`SimulateCallsReturnType`\<`calls`>>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | Simulates a set of calls. **Example** `import { createPublicClient, http, parseEther } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const result = await client.simulateCalls({ account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929', calls: [{ { data: '0xdeadbeef', to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', }, { to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', value: parseEther('1'), }, ] })`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:1179 |
| `publicClient.simulateContract`               | `public`   | \<`abi`, `functionName`, `args`, `chainOverride`, `accountOverride`>(`args`: `SimulateContractParameters`\<`abi`, `functionName`, `args`, `undefined` \| `Chain`, `chainOverride`, `accountOverride`>) => `Promise`\<`SimulateContractReturnType`\<`abi`, `functionName`, `args`, `undefined` \| `Chain`, `undefined` \| `Account`, `chainOverride`, `accountOverride`>>                                                                                                                                                                                                                                                                                                                                                                                           | Simulates/validates a contract interaction. This is useful for retrieving **return data** and **revert reasons** of contract write functions. - Docs: [https://viem.sh/docs/contract/simulateContract](https://viem.sh/docs/contract/simulateContract) - Examples: [https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts\_writing-to-contracts](https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts_writing-to-contracts) **Remarks** This function does not require gas to execute and ***does not*** change the state of the blockchain. It is almost identical to [`readContract`](https://viem.sh/docs/contract/readContract), but also supports contract write functions. Internally, uses a [Public Client](https://viem.sh/docs/clients/public) to call the [`call` action](https://viem.sh/docs/actions/public/call) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData). **Example** `import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const result = await client.simulateContract({ address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', abi: parseAbi(['function mint(uint32) view returns (uint32)']), functionName: 'mint', args: ['69420'], account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e', })`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:1210 |
| `publicClient.transport`                      | `public`   | `TransportConfig`\<`"http"`, `EIP1193RequestFn`> & `object`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | The RPC transport                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/createClient.d.ts:81        |
| `publicClient.type`                           | `public`   | `string`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | The type of client.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/createClient.d.ts:83        |
| `publicClient.uid`                            | `public`   | `string`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | A unique ID for the client.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/createClient.d.ts:85        |
| `publicClient.uninstallFilter`                | `public`   | (`args`: `UninstallFilterParameters`) => `Promise`\<`boolean`>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | Destroys a Filter that was created from one of the following Actions: - [`createBlockFilter`](https://viem.sh/docs/actions/public/createBlockFilter) - [`createEventFilter`](https://viem.sh/docs/actions/public/createEventFilter) - [`createPendingTransactionFilter`](https://viem.sh/docs/actions/public/createPendingTransactionFilter) - Docs: [https://viem.sh/docs/actions/public/uninstallFilter](https://viem.sh/docs/actions/public/uninstallFilter) - JSON-RPC Methods: [`eth_uninstallFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_uninstallFilter) **Example** `import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' import { createPendingTransactionFilter, uninstallFilter } from 'viem/public' const filter = await client.createPendingTransactionFilter() const uninstalled = await client.uninstallFilter({ filter }) // true`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:1264 |
| `publicClient.verifyMessage`                  | `public`   | (`args`: `object`) => `Promise`\<`boolean`>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | Verify that a message was signed by the provided address. Compatible with Smart Contract Accounts & Externally Owned Accounts via [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492). - Docs [https://viem.sh/docs/actions/public/verifyMessage](https://viem.sh/docs/actions/public/verifyMessage)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:1221 |
| `publicClient.verifySiweMessage`              | `public`   | (`args`: `object`) => `Promise`\<`boolean`>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | Verifies [EIP-4361](https://eips.ethereum.org/EIPS/eip-4361) formatted message was signed. Compatible with Smart Contract Accounts & Externally Owned Accounts via [ERC-6492](https://eips.ethereum.org/EIPS/eip-6492). - Docs [https://viem.sh/docs/siwe/actions/verifySiweMessage](https://viem.sh/docs/siwe/actions/verifySiweMessage)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:1232 |
| `publicClient.verifyTypedData`                | `public`   | (`args`: `VerifyTypedDataParameters`) => `Promise`\<`boolean`>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | Verify that typed data was signed by the provided address. - Docs [https://viem.sh/docs/actions/public/verifyTypedData](https://viem.sh/docs/actions/public/verifyTypedData)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:1241 |
| `publicClient.waitForTransactionReceipt`      | `public`   | (`args`: `WaitForTransactionReceiptParameters`\<`undefined` \| `Chain`>) => `Promise`\<`TransactionReceipt`>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Waits for the [Transaction](https://viem.sh/docs/glossary/terms#transaction) to be included on a [Block](https://viem.sh/docs/glossary/terms#block) (one confirmation), and then returns the [Transaction Receipt](https://viem.sh/docs/glossary/terms#transaction-receipt). If the Transaction reverts, then the action will throw an error. - Docs: [https://viem.sh/docs/actions/public/waitForTransactionReceipt](https://viem.sh/docs/actions/public/waitForTransactionReceipt) - Example: [https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions\_sending-transactions](https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions_sending-transactions) - JSON-RPC Methods: - Polls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt) on each block until it has been processed. - If a Transaction has been replaced: - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) and extracts the transactions - Checks if one of the Transactions is a replacement - If so, calls [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt). **Remarks** The `waitForTransactionReceipt` action additionally supports Replacement detection (e.g. sped up Transactions). Transactions can be replaced when a user modifies their transaction in their wallet (to speed up or cancel). Transactions are replaced when they are sent from the same nonce. There are 3 types of Transaction Replacement reasons: - `repriced`: The gas price has been modified (e.g. different `maxFeePerGas`) - `cancelled`: The Transaction has been cancelled (e.g. `value === 0n`) - `replaced`: The Transaction has been replaced (e.g. different `value` or `data`) **Example** `import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const transactionReceipt = await client.waitForTransactionReceipt({ hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d', })`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:1303 |
| `publicClient.watchBlockNumber`               | `public`   | (`args`: `WatchBlockNumberParameters`) => `WatchBlockNumberReturnType`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | Watches and returns incoming block numbers. - Docs: [https://viem.sh/docs/actions/public/watchBlockNumber](https://viem.sh/docs/actions/public/watchBlockNumber) - Examples: [https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks\_watching-blocks](https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks) - JSON-RPC Methods: - When `poll: true`, calls [`eth_blockNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_blocknumber) on a polling interval. - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `"newHeads"` event. **Example** `import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const unwatch = await client.watchBlockNumber({ onBlockNumber: (blockNumber) => console.log(blockNumber), })`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:1328 |
| `publicClient.watchBlocks`                    | `public`   | \<`includeTransactions`, `blockTag`>(`args`: `WatchBlocksParameters`\<`HttpTransport`, `undefined` \| `Chain`, `includeTransactions`, `blockTag`>) => `WatchBlocksReturnType`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | Watches and returns information for incoming blocks. - Docs: [https://viem.sh/docs/actions/public/watchBlocks](https://viem.sh/docs/actions/public/watchBlocks) - Examples: [https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks\_watching-blocks](https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks_watching-blocks) - JSON-RPC Methods: - When `poll: true`, calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getBlockByNumber) on a polling interval. - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `"newHeads"` event. **Example** `import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const unwatch = await client.watchBlocks({ onBlock: (block) => console.log(block), })`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:1353 |
| `publicClient.watchContractEvent`             | `public`   | \<`abi`, `eventName`, `strict`>(`args`: `WatchContractEventParameters`\<`abi`, `eventName`, `strict`, `HttpTransport`>) => `WatchContractEventReturnType`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | Watches and returns emitted contract event logs. - Docs: [https://viem.sh/docs/contract/watchContractEvent](https://viem.sh/docs/contract/watchContractEvent) **Remarks** This Action will batch up all the event logs found within the [`pollingInterval`](https://viem.sh/docs/contract/watchContractEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/contract/watchContractEvent#onLogs). `watchContractEvent` will attempt to create an [Event Filter](https://viem.sh/docs/contract/createContractEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchContractEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead. **Example** `import { createPublicClient, http, parseAbi } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const unwatch = client.watchContractEvent({ address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', abi: parseAbi(['event Transfer(address indexed from, address indexed to, uint256 value)']), eventName: 'Transfer', args: { from: '0xc961145a54C96E3aE9bAA048c4F4D6b04C13916b' }, onLogs: (logs) => console.log(logs), })`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:1383 |
| `publicClient.watchEvent`                     | `public`   | \<`abiEvent`, `abiEvents`, `strict`>(`args`: `WatchEventParameters`\<`abiEvent`, `abiEvents`, `strict`, `HttpTransport`>) => `WatchEventReturnType`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | Watches and returns emitted [Event Logs](https://viem.sh/docs/glossary/terms#event-log). - Docs: [https://viem.sh/docs/actions/public/watchEvent](https://viem.sh/docs/actions/public/watchEvent) - JSON-RPC Methods: - **RPC Provider supports `eth_newFilter`:** - Calls [`eth_newFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newfilter) to create a filter (called on initialize). - On a polling interval, it will call [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getfilterchanges). - **RPC Provider does not support `eth_newFilter`:** - Calls [`eth_getLogs`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getlogs) for each block between the polling interval. **Remarks** This Action will batch up all the Event Logs found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchEvent#pollinginterval-optional), and invoke them via [`onLogs`](https://viem.sh/docs/actions/public/watchEvent#onLogs). `watchEvent` will attempt to create an [Event Filter](https://viem.sh/docs/actions/public/createEventFilter) and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. `eth_newFilter`), then `watchEvent` will fall back to using [`getLogs`](https://viem.sh/docs/actions/public/getLogs) instead. **Example** `import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const unwatch = client.watchEvent({ onLogs: (logs) => console.log(logs), })`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:1415 |
| `publicClient.watchPendingTransactions`       | `public`   | (`args`: `WatchPendingTransactionsParameters`\<`HttpTransport`>) => `WatchPendingTransactionsReturnType`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Watches and returns pending transaction hashes. - Docs: [https://viem.sh/docs/actions/public/watchPendingTransactions](https://viem.sh/docs/actions/public/watchPendingTransactions) - JSON-RPC Methods: - When `poll: true` - Calls [`eth_newPendingTransactionFilter`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_newpendingtransactionfilter) to initialize the filter. - Calls [`eth_getFilterChanges`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getFilterChanges) on a polling interval. - When `poll: false` & WebSocket Transport, uses a WebSocket subscription via [`eth_subscribe`](https://docs.alchemy.com/reference/eth-subscribe-polygon) and the `"newPendingTransactions"` event. **Remarks** This Action will batch up all the pending transactions found within the [`pollingInterval`](https://viem.sh/docs/actions/public/watchPendingTransactions#pollinginterval-optional), and invoke them via [`onTransactions`](https://viem.sh/docs/actions/public/watchPendingTransactions#ontransactions). **Example** `import { createPublicClient, http } from 'viem' import { mainnet } from 'viem/chains' const client = createPublicClient({ chain: mainnet, transport: http(), }) const unwatch = await client.watchPendingTransactions({ onTransactions: (hashes) => console.log(hashes), })`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | node\_modules/.pnpm/viem@[2.23.6\_bufferutil@4.0.8\_typescript](mailto:2.23.6_bufferutil@4.0.8_typescript)@[5.5.3\_utf-8-validate@5.0.10\_zod](mailto:5.5.3_utf-8-validate@5.0.10_zod)@3.22.4/node\_modules/viem/\_types/clients/decorators/public.d.ts:1444 |

## Methods

### balances()

> **balances**(`tokens`): `Promise`\<`WalletBalanceResponseDto`>

Get the wallet balances

#### Parameters

| Parameter | Type                 | Description |
| --------- | -------------------- | ----------- |
| `tokens`  | \`0x\$\{string}\`\[] | The tokens  |

#### Returns

`Promise`\<`WalletBalanceResponseDto`>

The balances

#### Defined in

[packages/wallets/src/evm/wallet.ts:131](https://github.com/Crossmint/crossmint-sdk/blob/f062aee0102e89a061357f3719be9daa171ee05b/packages/wallets/src/evm/wallet.ts#L131)

***

### getAddress()

> **getAddress**(): \`0x\$\{string}\`

Get the wallet address

#### Returns

\`0x\$\{string}\`

The wallet address

#### Implementation of

`ViemWallet.getAddress`

#### Defined in

[packages/wallets/src/evm/wallet.ts:159](https://github.com/Crossmint/crossmint-sdk/blob/f062aee0102e89a061357f3719be9daa171ee05b/packages/wallets/src/evm/wallet.ts#L159)

***

### getNonce()

> **getNonce**(`parameters`?): `Promise`\<`bigint`>

Get the wallet nonce

#### Parameters

| Parameter         | Type     | Description    |
| ----------------- | -------- | -------------- |
| `parameters`?     | `object` | The parameters |
| `parameters.key`? | `bigint` | -              |

#### Returns

`Promise`\<`bigint`>

The nonce

#### Implementation of

`ViemWallet.getNonce`

#### Defined in

[packages/wallets/src/evm/wallet.ts:163](https://github.com/Crossmint/crossmint-sdk/blob/f062aee0102e89a061357f3719be9daa171ee05b/packages/wallets/src/evm/wallet.ts#L163)

***

### nfts()

> **nfts**(`perPage`, `page`, `chain`, `locator`?): `Promise`\<`GetNftsResponse`>

Get the wallet NFTs

#### Parameters

| Parameter  | Type               | Description                 |
| ---------- | ------------------ | --------------------------- |
| `perPage`  | `number`           | The number of NFTs per page |
| `page`     | `number`           | The page number             |
| `chain`    | `string`           | The chain                   |
| `locator`? | `EvmWalletLocator` | The locator                 |

#### Returns

`Promise`\<`GetNftsResponse`>

The NFTs

#### Defined in

[packages/wallets/src/evm/wallet.ts:155](https://github.com/Crossmint/crossmint-sdk/blob/f062aee0102e89a061357f3719be9daa171ee05b/packages/wallets/src/evm/wallet.ts#L155)

***

### sendTransaction()

> **sendTransaction**(`parameters`): `Promise`\<\`0x\$\{string}\`>

Sign and submit a transaction

#### Parameters

| Parameter    | Type               | Description                |
| ------------ | ------------------ | -------------------------- |
| `parameters` | `TransactionInput` | The transaction parameters |

#### Returns

`Promise`\<\`0x\$\{string}\`>

The transaction hash

#### Implementation of

`ViemWallet.sendTransaction`

#### Defined in

[packages/wallets/src/evm/wallet.ts:279](https://github.com/Crossmint/crossmint-sdk/blob/f062aee0102e89a061357f3719be9daa171ee05b/packages/wallets/src/evm/wallet.ts#L279)

***

### signMessage()

> **signMessage**(`parameters`): `Promise`\<\`0x\$\{string}\`>

Sign a message

#### Parameters

| Parameter            | Type              | Description    |
| -------------------- | ----------------- | -------------- |
| `parameters`         | `object`          | The parameters |
| `parameters.message` | `SignableMessage` | -              |

#### Returns

`Promise`\<\`0x\$\{string}\`>

The signature

#### Implementation of

`ViemWallet.signMessage`

#### Defined in

[packages/wallets/src/evm/wallet.ts:173](https://github.com/Crossmint/crossmint-sdk/blob/f062aee0102e89a061357f3719be9daa171ee05b/packages/wallets/src/evm/wallet.ts#L173)

***

### signTypedData()

> **signTypedData**\<`typedData`, `primaryType`>(`parameters`): `Promise`\<\`0x\$\{string}\`>

Sign a typed data

#### Type Parameters

| Type Parameter                                                   | Default type      |
| ---------------------------------------------------------------- | ----------------- |
| `typedData` *extends* `Record`\<`string`, `unknown`> \| `object` | -                 |
| `primaryType` *extends* `string` \| `number` \| `symbol`         | keyof `typedData` |

#### Parameters

| Parameter    | Type                                               | Description    |
| ------------ | -------------------------------------------------- | -------------- |
| `parameters` | `TypedDataDefinition`\<`typedData`, `primaryType`> | The parameters |

#### Returns

`Promise`\<\`0x\$\{string}\`>

The signature

#### Implementation of

`ViemWallet.signTypedData`

#### Defined in

[packages/wallets/src/evm/wallet.ts:217](https://github.com/Crossmint/crossmint-sdk/blob/f062aee0102e89a061357f3719be9daa171ee05b/packages/wallets/src/evm/wallet.ts#L217)

***

### transactions()

> **transactions**(): `Promise`\<`object`\[]>

Get the wallet transactions

#### Returns

`Promise`\<`object`\[]>

The transactions

#### Defined in

[packages/wallets/src/evm/wallet.ts:142](https://github.com/Crossmint/crossmint-sdk/blob/f062aee0102e89a061357f3719be9daa171ee05b/packages/wallets/src/evm/wallet.ts#L142)
