Skip to main content


web3-redux was originally created by @leovigna and is now actively maintained by @owlprotocol as a library used in all of our DApps. The library is MIT licensed and anyone is free to contribute.

Before you do we recommend the following:

  • Read through the docs and reference
  • Integrate web3-redux into one of your DApps
  • Understand the general web3-redux architecture
  • Fork the repo and run the test suite (some tests might fail due to missing API keys)

If you'd like to contribute:

  • Look for an existing issue, and comment if interested in researching/implementing
  • Create a new issue for feature requests/bugs

To fully understand the architecture of web3-redux, you might want to get familiar with some of the libraries this "meta-library" is built with:






Current areas of research include:

  • Debugging & Error Handling middleware
  • Test coverage & Additional Continuous Integration
  • Additional documentation & guides
  • Web3 RPC Optimizations (Multicall Contract, HTTP Batching)
  • Indexing integrations (Etherscan, The Graph)
  • Non-EVM blockchains (eg. Solana, Cardano, Ripple)
  • Pre-configured "meta-hooks" for common interfaces
    • ERC165, ERC20, ERC721, ERC1155 already implemented
  • Pre-built React components (web3-redux-components)

Project Setup


Install depedencies using pnpm.

git clone
pnpm i


This section aims to discuss the layout of the web3-redux repo and underlying packages for potential contributors or developers looking to debug the library by looking at the source code.

We use a monorepo architecture with various related projects stored under packages/: