what's Viem?
Viem is a lightweight, modular TypeScript interface for Ethereum, designed for stability, developer experience, small bundle size, and high performance. It provides core modules for JSON-RPC interactions, smart contract reads/writes, wallet abstractions, ENS resolution, transaction parsing, and EIP utilities, serving as a modern alternative to libraries like Ethers.js and web3.js. It powers higher-level tools like wagmi (React Hooks for Ethereum) and emphasizes type-safety, composability, and efficiency for building dApps across EVM chains. Key features include account hoisting, fallback transport ranking, ERC-7811 wallet asset fetching, and direct action imports for custom hooks.
Viem is the production foundation for @prb/effect-evm, an Effect-TS library for EVM frontends.
Links
x.com/wevm_devSupports auto-appending ERC-8021 builder codes with a two-line configuration change, enabling apps to identify themselves and track interface usage in transaction calldata.
Used as the foundation for @prb/effect-evm, an Effect-TS library for EVM frontends built by PaulRBerg and deployed in production at Sablier.
Released native batching and sponsorship features.
Released version 2.43 with support for Tempo chain, including type inference for Tempo transaction attributes such as batched calls and feePayers.
Released a developer experience upgrade that adds contract function/event/error parameter names to editor autocomplete, hover tooltips, and TypeScript error messages.
Native Monad Mainnet compatibility launches with sendRawTransactionSync and sendTransactionSync functions working out-of-box, delivering transaction receipts in under a second.
Viem participates in Gitcoin Grants round 24 for community funding support.
EAS-SDK-V2 releases with viem as its core library, replacing ethers and treating viem as first-class citizen for easier integrations with modern stacks like wagmi.
New release adds chain-specific ENS resolution support (ENSIP-19), eliminating direct resolver contract queries.
New Flashblocks support enables sub-200ms transaction confirmation times through basePreconf and baseSepoliaPreconf chains.
New update introduces chain-specific dynamic polling intervals, reducing transaction confirmation times and improving performance for applications built on L2 chains.