Skip to content
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.

There are multiple options when it comes to React libraries for Ethereum that help manage wallet connections, provide utility methods/hooks, etc.

Overview

wagmiweb3-reactuseDAppweb3modal
GitHub Starswagmi star countweb3-react star countuseDApp star countweb3modal star count
Open Issueswagmi issue countweb3-react issue countuseDApp issue countweb3modal issue count
Downloadswagmi downloadsweb3-react downloadsuseDApp downloadsweb3modal downloads
Licensewagmi licenseweb3-react licenseuseDApp licenseweb3modal license
Their Comparisonnonenonenone
Supported FrameworksReact, Vanilla JSReactReactVanilla JS
Documentation🛑🛑
TypeScript1🔶🔶🔶
Test Suite2🔶🔶🛑
Examples3🔶🔶

wagmi

Pros

  • 20+ hooks for working with wallets, ENS, contracts, transactions, signing, etc.
  • Built-in wallet connectors for MetaMask, WalletConnect, Coinbase Wallet, and Injected
  • Caching, request deduplication, and persistence powered
  • Auto-refresh data on wallet, block, and network changes
  • Multicall support
  • Test suite running against forked Ethereum network
  • TypeScript ready (infer types from ABIs and EIP-712 Typed Data)
  • Extensive documentation and examples
  • Used by ENS, Foundation, SushiSwap, and more
  • MIT License

Cons

  • Not as many built-in 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

  • Non-standard hook API

web3modal

Pros

  • UI component for connecting wallet
  • Supports many different connectors

Cons

  • Cannot be used headlessly
  • No hooks for interacting with Ethereum, fetching information, etc.
  • Almost no tests and infrequent updates
  • Apache-2.0 License

Footnotes

  1. Infer types from ABIs, EIP-712 Typed Data, etc. ✅. Can add types with explicit generics, type annotations, etc. 🔶.

  2. Runs against forked Ethereum network ✅. Mocking functionality (i.e. RPC calls) is 🔶.

  3. Has multiple examples ✅. Has single example 🔶.