Skip to content

Comparison To Other Libraries

There are a few different options of React libraries for Ethereum that help manage wallet connections, provide utility methods/hooks, etc.

👀

If you have any thoughts about this section or want to add another comparison, please contribute! The goal is for these comparisons to be unbiased and informative.

wagmi

Pros

  • 20+ hooks for working with wallets, ENS, contracts, transactions, signing, etc.
  • Built-in wallet connectors for MetaMask, WalletConnect, and Coinbase Wallet
  • Auto-refresh data on wallet and network changes
  • TypeScript ready
  • Zero-dependencies (besides ethers.js peer dependency)
  • Test suite and documentation
  • MIT License

Cons

  • Not as many connectors as web3-react

web3-react

Pros

  • Supports many different connectors (conceptually similar to wagmi's connectors)
  • 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
  • No hooks for interacting with Ethereum, fetching information, etc.
  • 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