viem
Modern, type-safe TypeScript interface for Ethereum, now the emerging standard over web3.js.
https://viem.shUpdate history
viem now provides createClientResolver for lazily resolving and caching typed clients across configured chains, and viem/tempo gains a Relay RPC handler with a composable plugin mechanism supporting multisig, simulate, feePayer, and feeToken plugins. This release also fixes waitForTransactionReceipt so concurrent calls for the same hash each honor their own timeout, confirmations, pollingInterval, retryCount and checkReplacement instead of inheriting the first call's options.
Matters for: Developers building multi-chain dApps that manage clients across several configured chains, and teams building custom RPC relay infrastructure on viem/tempo.
You can now resolve Zone portal addresses deterministically via Addresses.zonePortal(id), use built-in Zone definitions with Zone.from for custom chains, bind engine-agnostic yield strategies with tempo.earn.bindEngine, and read Zone Portal admin, sequencer, and token metadata via zone.getPortalInfo. This is a breaking change: update code that imports from viem/tempo/zones to import Zone from viem/tempo instead, replace Abis.abis references with Abis.all, and swap curried zone network factories and getPortalAddress calls for the new Zone and Addresses.zonePortal APIs.
Matters for: Engineers building on Tempo-based chains and zones who use viem's viem/tempo module for portal, sequencer, and ABI interactions.
Get the badge
Show that viem is tracked on StackFollow in your project's README.
[](https://stackfollow.xyz/tools/viem)
viem