Discover quality Web3 tools and DApps
wagmi is the modern React library for Ethereum development. It provides hooks for wallet connection, contract interaction, and blockchain data—all with TypeScript-first design and excellent developer experience.
Built on top of viem (the modern ethers.js alternative), wagmi offers type-safe contract interactions, automatic request deduplication, and built-in caching. It's what most new React dApps use for Web3 functionality.
wagmi integrates seamlessly with wallet connectors like RainbowKit and supports all major wallets. The API is intuitive: useAccount for connection, useContractRead for queries, usePrepareContractWrite for transactions.
Intuitive API
Type-safe contracts
Modern foundation
All major wallets
Optimized requests
Best-in-class UI
Build React dApps
Multi-wallet support
Read and write
Send and track
Balances, ENS, etc.
wagmi is a React library for Ethereum. It provides hooks like useAccount, useBalance, useContractRead, and usePrepareContractWrite. Think of it as the standard way to add Web3 to React apps.
wagmi is React-specific hooks built on viem. ethers.js is a general-purpose library. For React dApps, wagmi is better—hooks, caching, TypeScript support. ethers.js works anywhere but lacks React integration.
viem is the modern alternative to ethers.js—the low-level Ethereum library wagmi builds on. Smaller, faster, more modular, better TypeScript. wagmi provides the React layer on top of viem.
Install wagmi and configure providers. Use useAccount for wallet connection, useContractRead for queries. The docs at wagmi.sh have excellent tutorials. Most new React dApps start here.
RainbowKit is a wallet connection UI library built for wagmi. Beautiful connect button and wallet modal out of the box. wagmi handles logic, RainbowKit handles UI. They work together perfectly.