
A lightweight, composable, and type-safe TypeScript interface for building reliable Ethereum apps and libraries.
Viem is a TypeScript interface designed to provide developers with a reliable, efficient, and modular way to interact with the Ethereum blockchain. It offers lightweight, composable modules that enable building Ethereum applications and libraries with a focus on type safety and developer experience. Viem addresses common issues found in existing Ethereum libraries such as ethers.js and web3.js by emphasizing stability, minimal bundle size, and performance. Its APIs are designed to be explicit and flexible, allowing developers to understand Ethereum concepts deeply while maintaining strong typing and autocomplete support.
The tool supports abstractions over the JSON-RPC API, first-class smart contract interaction APIs, and utilities for ABI encoding and decoding. It integrates seamlessly with popular Ethereum development environments like Anvil, Hardhat, and Ganache, and supports importing wallets via browser extensions, WalletConnect, or private keys. Viem’s modular architecture enables tree-shaking to keep final bundle sizes small, which is critical for web applications targeting users on slow networks.
Viem stands out by combining a test-driven development approach with comprehensive documentation and stable, deterministic APIs. It is built by the same team behind wagmi, a popular React hooks library for Ethereum, ensuring tight integration and a smooth developer experience. Developers can get started quickly by installing the package via npm and creating clients configured for specific Ethereum chains and transports. Extensive guides and examples are available to ease onboarding and migration from other libraries.
Existing low-level Ethereum interface libraries often suffer from poor developer experience, large bundle sizes, unstable APIs, and suboptimal performance. These issues complicate building reliable and efficient Ethereum applications, especially when strong typing and modularity are required.
Simplifies interaction with Ethereum nodes by wrapping low-level JSON-RPC calls into easy-to-use functions.
First-class support for contract calls, transactions, and event handling with ABI encoding and decoding utilities.
Supports importing wallets from browser extensions, WalletConnect, and private keys for signing transactions.
Works seamlessly with Anvil, Hardhat, and Ganache for testing and development.
Developers use viem to create decentralized applications with strong TypeScript support, ensuring fewer bugs and better maintainability.
Library authors leverage viem’s composable modules to build reusable Ethereum interaction components with minimal dependencies.
Teams integrate wallet connections and smart contract calls into their apps using viem’s wallet client and contract APIs.
Discover trusted tools and services in the QuickNode Marketplace. Everything you need to launch faster and scale smarter.
Explore web3 competitors and apps like Viem.

A Document Object Model for Web APIs designed to simplify API consumption and integration.

0x provides battle-tested APIs to embed fast, gasless, and deeply liquid crypto trading into decentralized applications.
Blast API is a decentralized Web3 infrastructure platform providing geographically distributed blockchain node APIs to improve reliability and latency.

The Graph is a decentralized indexing protocol that organizes blockchain data and makes it easily accessible via GraphQL.
Virtually operated Web3 networks that replicate real blockchain networks for development, testing, and staging without using real assets.

Connext is a secure, fast modular interoperability protocol enabling cross-chain fund bridging and asynchronous Solidity development.
Rarible API is a fast, unified NFT API infrastructure providing real-time data and executable market features across Ethereum, Base, Polygon, and more than 10 other chains.

A fully managed, customizable rollup deployment platform providing scalable, secure, and high-performance blockchain infrastructure.

Network APIs provides web3 developer tools focused on blockchain network interactions and API services.
Open Source | |
|---|---|
| Price (Monthly) | Free |
| Price (Annual) | Free |
| Messaging | N/A |
| Support | Community support via GitHub and Discord |
| Analytics |
Viem offers comprehensive documentation, examples, and community support to help developers get started and migrate from other Ethereum libraries. The project maintains a high test coverage and provides guides on advanced topics such as error handling, EIP-7702, and blob transactions.
| Composability | |||
| Cross-Chain | |||
| Customizability | |||
| Developer Support | |||
| Ease of Integration | |||
| Performance |