Skill based on viem, generated 2026-02-09. Docs: https://viem.sh
viem is a TypeScript client for Ethereum: Public/Wallet/Test clients, transports (HTTP, WebSocket, custom), type-safe contract reads/writes, local and JSON-RPC accounts, chains, ENS, and encoding/unit helpers.
Core References
| Topic | Description | Reference |
|---|
| Clients & Transports | Public/Wallet/Test clients, HTTP/WS/custom transports, multicall batching | core-clients-transports |
| Contract | getContract, readContract, writeContract, simulateContract | core-contract |
| Accounts | Local (privateKey, mnemonic) and JSON-RPC accounts, extend with publicActions | core-accounts |
Features
Chains & ENS
| Topic | Description | Reference |
|---|
| Chains | Built-in chains (viem/chains), defineChain for custom | features-chains |
| ENS | getEnsAddress, getEnsName, getEnsAvatar, normalize | features-ens |
Utilities
| Topic | Description | Reference |
|---|
| Utilities | getAddress, parseEther/formatEther, encoding, keccak256, ABI helpers | features-utilities |
| ABI | parseAbi, encodeAbiParameters, decodeAbiParameters, getAbiItem | features-abi |
Auth
| Topic | Description | Reference |
|---|
| SIWE | createSiweMessage, verifySiweMessage, parseSiweMessage, validateSiweMessage | features-siwe |
Public data
| Topic | Description | Reference |
|---|
| Public Actions | getBalance, getLogs, getBlock, estimateGas, waitForTransactionReceipt, watchEvent | features-public-actions |
Best Practices
External Links