Docs
/Library Comparison
Comparison To Other Libraries
👀
This comparison strives to be as accurate and as unbiased as possible. If you use any of these libraries and feel the information could be improved, feel free to suggest changes (with notes or evidence of claims) using the "Edit this page on Github" link.
There are a multiple options when it comes to React libraries for Ethereum that help manage wallet connections, provide utility methods/hooks, etc.
Overview
wagmi | web3-react | useDApp | web3modal | |
---|---|---|---|---|
GitHub Stars | ||||
Open Issues | ||||
License | ||||
Their Comparison | (none) | (none) | (none) | |
Supported Frameworks | React, Vanilla JS | React | React | Vanilla JS |
Documentation | ✅ | 🛑 | ✅ | 🛑 |
Test Suite1 | ✅ | 🔶 | 🔶 | 🛑 |
Examples2 | ✅ | 🔶 | 🛑 | 🔶 |
wagmi
Pros
- 20+ hooks for working with wallets, ENS, contracts, transactions, signing, etc.
- Built-in wallet connectors for MetaMask, WalletConnect, and Coinbase Wallet
- Caching, request deduplication, and persistence powered by react-query
- Auto-refresh data on wallet, block, and network changes
- Test suite running against forked Ethereum network
- TypeScript ready and extensive documentation
- MIT License
Cons
- Not as many connectors as
web3-react
web3-react
Pros
- Supports many different connectors (conceptually similar to wagmi's connectors)
- Basic hooks for managing account
- Used by Uniswap and some other popular projects
Cons
- Need to set up connectors and method for connecting wallet on your own
- Need to install connectors separately
- Almost no tests or documentation; infrequent updates
- GPL-3.0 License
useDApp
Pros
- Auto-refresh on new blocks and wallet changes
- Multicall support
- Transaction notifications
- Chrome extension and Firefox add-on
- MIT License
Cons
- Uses
web3-react
- Non-standard hook API
- Lack of TypeScript generics support
- Almost no tests
web3modal
Pros
- UI component for connecting wallet
- Supports many different connectors
- MIT License
Cons
- Cannot be used headlessly
- No hooks for interacting with Ethereum, fetching information, etc.
- Almost no tests and infrequent updates