Skip to main content
Version: 1.13.1

Function: fromViemClient()

fromViemClient(client: { }, ctx?: ChainContext): Promise<EVMChain>

Defined in: evm/viem/client-adapter.ts:147

Create EVMChain from a viem PublicClient.

Supports ALL viem transport types including:

  • http() - Standard HTTP transport
  • webSocket() - WebSocket transport
  • custom() - Injected providers (MetaMask, WalletConnect, etc.)
  • fallback() - Fallback transport with multiple providers

Parameters

ParameterTypeDescription
client{ }viem PublicClient instance with chain defined
ctx?ChainContextOptional chain context (logger, etc.)

Returns

Promise<EVMChain>

EVMChain instance

Examples

TypeScript
import { createPublicClient, http } from 'viem'
import { mainnet } from 'viem/chains'
import { fromViemClient } from '@chainlink/ccip-sdk/viem'

const publicClient = createPublicClient({
chain: mainnet,
transport: http('https://eth.llamarpc.com'),
})

const chain = await fromViemClient(publicClient)
const messages = await chain.getMessagesInTx(tx)

Browser wallet (MetaMask)

TypeScript
import { createPublicClient, custom } from 'viem'
import { mainnet } from 'viem/chains'
import { fromViemClient } from '@chainlink/ccip-sdk/viem'

const publicClient = createPublicClient({
chain: mainnet,
transport: custom(window.ethereum),
})

const chain = await fromViemClient(publicClient)