Web3.py: connecting Python devs to Ethereum

Why is your project important?

web3.py is the standard for interacting with the Ethereum blockchain for Python developers. The open source library garners well over one million downloads per month and underpins many Python developer tools, including the Ape and Brownie development frameworks. web3.py-adjacent libraries, including py-evm, are dependencies in the Vyper/Titanoboa development stack.

More broadly, we value language diversity within Ethereum tooling, and believe the path to mass adoption requires meeting developers where they are. The web3.py API, documentation, blog, and reference repos place high priority on approachability for anyone comfortable with Python.

Milestones Achieved

  • This month, we’ve released the first beta versions of the next major version, v7, which includes vastly improved asynchronous providers, a redesigned middleware API, and a long list of smaller breaking change UX improvements.
  • Well over one million web3.py PyPI downloads per month
  • Over 200 pull requests merged into web3.py in 2023
  • 22 web3.py releases in 2023
  • GitHub reports web3.py is a dependency of over 18k repos and 800 packages
  • Designated as a “critical” project in PyPI - the project is in the top 1% of downloads over the prior 6 months.

Roadmap and Future Goals

  • Work continues on v7 as we iterate towards the stable release in Q2.
  • Benchmarking and performance improvements are a priority this year, particularly within py-evm.
  • Research spikes on UX improvements to support L2 usage, account abstraction, and the Portal Network, as a few examples.
  • Continuing a steady stream of ecosystem support, documentation upgrades, tutorials, hackathon starter kits, and so on.
  • Additional context available in the roadmap.

Funding Sources and Goals

Today, the Ethereum Foundation covers the salaries of those maintaining web3.py and adjacent Python libraries. We’ve also benefitted from Drips including web3.py in their Octant Drip List in previous Epochs.

In the long term, the Ethereum Foundation seeks to gradually eliminate the ecosystem’s reliance on it for sustainability. We believe public goods funding protocols, such as Octant, will play an important role in supporting the continued maintenance of FOSS libraries like web3.py, eth-account, py-evm, and more that are stewarded by our team.

Team Information

Our team of five devs collectively has over 15 years of experience maintaining open source libraries within the Ethereum ecosystem, dating back to the Mist Browser in 2017.

Links

5 Likes

gm :sun_with_face:, since last post:

These things happened:

  • Dev
    • Six web3.py v6 (stable) releases
    • Four web3.py v7 (beta) releases
      • On pace for v7 stable release by early July(!)
    • (Supporting releases of eth-utils, eth-typing, eth-account, eth-tester, py-evm, py-geth, eth-abi, etc.)
    • Work included: introduction of batch requests (v7), stabilizing of WebSocketProvider and eth_subscribe support, blob (EIP-4844) support, full Python 3.12 support, session and request cache configuration, improved error handling, and performance improvements.
  • Education
    • Docs overhaul in v7
    • Guides/tutorials:
      • WebSocketProvider - intro to websockets, the provider, and subscribing to events
      • Blobs - intro to EIP-4844 and “type 3” transactions
      • Bloom Filters - walkthrough of filtering for Ethereum events
  • Funding
    • Octant (Epoch 3): 32.3391 ETH
    • Gitcoin (GG20): $7,519.49

These things are happening next:

  • (Themes still apply from original post’s Roadmap and Future Goals)
  • Prague/Electra network upgrade support
  • UX spike: more powerful contract APIs for executing functions and accessing event data
  • UX spikes: L2s and AA, to identify potential web3.py features
  • Improved type support across libraries
  • Final prep for fresh audits of eth-account and eth-keys
  • Typical maintenance: bug squashing, dependency maintenance, etc.
3 Likes