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