Skip to main content

viem

Viem is currently only available on Base Sepolia testnet.
viem a TypeScript interface for Ethereum that provides low-level stateless primitives for interacting with Ethereum. You can use viem to interact with smart contracts deployed on Base.

Install

To install viem run the following command:

Setup

Before you can start using viem, you need to setup a Client with a desired Transport and Chain.
To use Base, you must specify base as the chain when creating a Client.To use Base Sepolia (testnet), replace base with baseSepolia.

Reading data from the blockchain

Once you have created a client, you can use it to read and access data from Base using Public Actions Public Actions are client methods that map one-to-one with a “public” Ethereum RPC method (eth_blockNumber, eth_getBalance, etc.) For example, you can use the getBlockNumber client method to get the latest block:

Writing data to the blockchain

In order to write data to Base, you need to create a Wallet client (createWalletClient) and specify an Account to use.
In addition to making a JSON-RPC request (eth_requestAccounts) to get an Account, viem provides various helper methods for creating an Account, including: privateKeyToAccount, mnemonicToAccount, and hdKeyToAccount.To use Base Sepolia (testnet), replace base with baseSepolia.

Interacting with smart contracts

You can use viem to interact with a smart contract on Base by creating a Contract instance using getContract and passing it the contract ABI, contract address, and Public and/or Wallet Client:
CONTRACT_ADDRESS is the address of the deployed contract.