Funding for Web3.js v4 Plugins - A Goal to Simplify & Further Enable Developers

Describe your project and why you classify it as a Public Good

Web3.js is an open source JavaScript/TypeScript library designed to enable developers to engage with EVM-compatible blockchains and develop decentralized applications (DApps).

As a public good, this open-source library empowers developers to build tools and decentralized applications (dApps), thereby facilitating the creation of value on top of the Ethereum Virtual Machine (EVM) and EVM compatible blockchains. With between 1.5 to 1.8 million downloads per month, Web3.js stands as one of the most significant libraries within the Ethereum ecosystem.

The recent release of Web3.js version 4 introduces the inclusion of plugins. These allow for the extension of the web3.js library’s functionality, providing developers with enhanced capabilities, flexibility and an overall improvement in developer experience. A list of plugins can be found here: https://web3js.org/plugins

How much have you raised from each of your funding sources and from who?

ChainSafe has been operational since 2017 and has conducted several fundraising events since its inception. The company currently employs 130 people worldwide, resulting in significantly high operating costs. The most recent fundraising round, conducted in late 2022, raised $18.75 million USD. These funds are allocated across various verticals, including protocol development, developer tooling, product development, sales, communications, and marketing, among others. This capital is dedicated to general operating expenses, rather than the funding of public goods developed by ChainSafe, which are supported through grant funding. Recent grants for the development of web3.js version 4 include:

Period: January 2023 - March 2024
Optimism Retro PGF: 248,448.21 OP
Ethereum Foundation: $451,782 USD

It is important to note that, despite appearances, web3.js is not as well-funded as it may seem. ChainSafe has had to continually reassess the viability of ongoing development and maintenance of web3.js due to gradually decreasing support from the Ethereum Foundation. It has been made clear to us that as the EF continues to make every effort to decentralize itself, grant funding toward web3.js shall also decline. This has forced us to seek alternative funding sources in order to continue improving and maintaining the library. ChainSafe’s commercial goals for Web3.js do not include profit, rather, to cover the costs associated with maintaining it as well as remaining a compelling option in comparison to various other libraries that are available to developers.

All of the aforementioned funding has been allocated solely to employee salaries and overhead operating costs. It does not cover product management, product discovery, or any engineering work related to the architecture, planning, and the development of plugins.

For this grant application, ChainSafe seeks additional funding specifically for the portions currently subsidized by ChainSafe, as detailed below:

Product Discovery (web3.js plugins)
Engineering (web3.js plugins)

What milestones have you achieved?

  • Released web3.js version 4 that included many major new features such as:
  • Easy extensibility ( using web3.js Plugins feature )
  • Dynamic Contract Typing
  • Native typescript
  • ESM CJS native builds
  • 90%+ test coverage
  • Custom data formatting feature
  • Reduced package size
  • New packages ( web3-types, web3-errors, web3-validator, web3-rpc-methods )
  • Validation functionality using schema
  • User friendly documentation ( API docs, Guides, Tutorials )
  1. Achieved Growth in the Plugins Ecosystem
  • There are now 12+ Web3.js plugins supporting L1, L2 infrastructure, DApps and other EVM based chains as well (Chainlink, EIP4337, ZkSync, Optimism, Near Protocol, Aurora, SuperFluid, Swisstronik, complete list found here: https://web3js.org/plugins )
  1. Supporting New Developers
  • Released video tutorials and an online course as well as various hackathons for plugins and workshops.

Share your project roadmap:

The roadmap of web3.js library includes attracting and facilitating new developers in the EVM based decentralized infrastructure space for building tools and apps, boosting community support and engagement, fostering the growth of the web3.js plugin ecosystem, enhancing contributors experience, and maintaining & extending the existing feature set of Web3.js. Each of these pillars is essential for the library’s continued evolution in enabling seamless decentralized application development and empowering a vibrant developer community.

Tell us more about milestones you’d like to achieve:

Enhancing Developer Onboarding and Engagement:

  • Our objective is to make decentralized infrastructure more user-friendly. We plan to achieve this by integrating the Web3-Modal client and Wagmi adapters into Web3.js version 4. This integration will enhance the support for discovering multiple injected providers. Additionally, we aim to introduce an interactive Web3.js playground to effectively demonstrate code examples.

Strengthen Community Support:

  • Enhance our documentation by adding more user guides and developing innovative methods for collecting user feedback. We plan to support new developers through community events and enhance our educational offerings with additional Web3.js video tutorials.

Expand the Web3.js Plugin Ecosystem:

  • We are focused on growing the ecosystem around Web3.js plugins to enhance the library’s functionality and user experience.

Enhance Contributor Experience:

  • Our milestones include creating comprehensive guides for contributors, assisting with ‘good first issues’ to encourage new contributors, streamlining the repository setup and testing procedures, and improving the efficiency of our community support channels on GitHub and Discord.

Continuous Improvement and Feature Expansion of Web3.js:

  • We are committed to regularly addressing and resolving new issues and incorporating additional features as requested by the community to ensure Web3.js remains a leading library in the space.

Tell us more about your team:

There are currently 4 full time employees working at ChainSafe Systems dedicated to maintaining and improving the library consisting of four senior engineers. In addition to this, we have several employees working on Web3.js at roughly 0.5 FTE each, this includes 1 Product Manager, 1 Project Manager, 2 Senior Business Development Managers and 3 Marketing and Communications professionals.

Why’s your project important?

The web3.js library significantly influences developers engaged with EVM compatible blockchains. It boasts approximately 2 million downloads monthly on NPM and receives over 10 million hits per month from CDN. Furthermore, over 4,500 library projects rely on the web3.js library, underscoring its critical role and widespread adoption in the blockchain development community.

References:

Weekly Downloads: https://www.npmjs.com/package/web3

CDN Hits: web3 CDN by jsDelivr - A CDN for npm and GitHub

NPM Dependent Projects: web3 - npm

Team Social Accounts:

https://twitter.com/ChainSafeth

For any questions, please reach out to bryant@chainsafe.io

1 Like

Hey Octant community,

We wanted to say a heartfelt thanks to everyone who voted and nominated the web3js library for the allocation round! This support makes a real difference as we continue working to enhance web3js.

We (ChainSafe) recently marked four years as lead maintainers of web3js. Following the launch of v4 last year, we’ve ramped up efforts to extend usability via plugins and enhance devx with more resources and community engagement initiatives.

Below is a quick update on these efforts, including what’s next on our roadmap!

Developer Resources :hammer_and_wrench:

We created an intro guide for beginners. This playlist of short videos is designed to help newcomers kickstart their journey into web3 development.

We created a comprehensive course for more seasoned developers. This end-to-end guide covers all the core methods of using and interacting with web3js.

We’ve also authored a few corresponding blog posts, with more in the works!

Community Engagement :people_hugging:

Push / LW3 Hackathon

We have an ongoing incentive campaign running with Learn Web3 DAO and Push Protocol to encourage further development of web3js plugins. Details can be found here.

We’ve been on the road quite a bit in recent months. Some notable past and upcoming events include:

  • Eth Denver - talk
  • Eth Oxford - workshop
  • Eth Bucharest - talk
  • Eth Zurich - workshop
  • Eth Tallinn - workshop

We participated in Twitter spaces alongside Fleek on the scalability of developer communities (recording here). We will also be part of an upcoming intro to blockchain development session alongside Fleek and MEMOI.

Q2 plans and beyond :motorway:

Our roadmap focuses on several key areas: attracting and supporting new developers, boosting community engagement, growing the plugin ecosystem, enhancing the contributor experience, and expanding features.

These pillars drive the library’s evolution, enabling smoother decentralized app development and fostering a dynamic developer community.

In service of these goals, some of our near-term targets include:

  • Adding a Web3Modal client for web3.js to focus on attracting new developers
  • Expanding our documentation with five guides to support our community
  • Creating 15 hours of tutorial videos to help new web3 developers learn web3.js
  • Delivering three common-good plugins
  • Improving the plugin listing process
  • Working with partners in creating useful plugins
  • Reducing repository setup & testing duration by at least 50%

Funding

It’s important to note that web3.js is not as well-funded as it may seem. ChainSafe has had to continually reassess the viability of its ongoing development and maintenance due to gradually decreasing support from the Ethereum Foundation.

It has been made clear that as the EF continues to make every effort to decentralize itself, grant funding toward web3.js will also decline. This has forced us to seek alternative funding sources in order to continue working on the library.

ChainSafe’s commercial goals for web3js do not include profit but rather covering the costs associated with maintaining it and ensuring it’s a lasting source of value for the broader community.

Learn more about web3js

Thanks for supporting open-source developer tools!

1 Like

Web3js Progress Report:

This report is in three sections. Section one details each achievement as per the project roadmap milestones. Section two details upcoming expected milestones during the next Octant Epoch round, and section details how the funds raised during Epoch #3 were spent.

Section 1: Achievements Since Last Epoch:

  1. Enhancing Developer Onboarding and Engagement:
  • Wagmi Adaptor - Completed!
    • 6746 - Implementation Task
    • 6751 - Documentation Task
    • 6752 - Tests
  • Web3-Modal Client - Completed!
    • 6747 - Implementation Task
    • 6749 - Documentation Task
    • 6750 - Tests
    • Misc Issues to fix/complete the build
      1. 6997 - Functionality work
      2. 6996 - Minimal web3 packages
      3. 6995 - Test emails and smart account
      4. 6991 - next.js
  1. Strengthen Community Support:
  • 6840 - Plugin Guide
  • 6742 - Utils Guide
  • 6741 - Events Guide
  1. Expand the Web3.js Plugin Ecosystem:
  1. Enhance Contributor Experience:
  • ChainSafe has consistently provided prompt support for pull requests, technical questions, troubleshooting, merge requests, and Discord communications. Additionally, ChainSafe has implemented developer feedback suggestions to demonstrate the value of their ideas. ChainSafe remains committed to enhancing the contributor experience, and plans to continue delivering on these objectives as long as financially feasible.
  1. Continuous Improvement and Feature Expansion of Web3.js:
  • 7044 - Issue Fixed: web3.utils.toWei(amount, ether) fix required when decimals in input are overflown
  • 6801 - Issue FIxed: fillGasPrice fundamentals changed transactions

Section 2: Upcoming Milestones as per Project Roadmap:

  1. Enhancing Developer Onboarding and Engagement:

We are currently working on our 2024 Q3 and Q4 goals and actions items. Currently, these include:

  • Working on the next major version (v5)
  • Work on improving performance and reducing the size
  • Add to our providers list
  1. Strengthen Community Support:
  • Starting an ambassador program to grow the community with 10-20 ambassadors.
  • Conducting a workshop at ETHCC in Brussels.
  • Maintaining 24/7 support on Discord and GitHub.
  1. Expand the Web3.js Plugin Ecosystem:

Over the next period, Chainsafe will commence scheduling workshop/s for developers that would like assistance with creating web3js plugins for fundamental projects within web3, such as layer 2 solutions, oracles, etc.

  1. Enhance Contributor Experience:

ChainSafe remains committed to enhancing the contributor experience, and plans to continue delivering on objectives related to support for pull requests, technical questions, troubleshooting, merge requests, and Discord communications.

  1. Continuous Improvement and Feature Expansion of Web3.js:
  • Move AccountAbstraction (EIP4337) from plugins into core library
  • Researching to improve wallet security

Section 3: Funds Spent:

On April 30th, 2024, which marked the end of Epoch #3’s allocation window, ChainSafe was awarded 32.5915 ETH, equal to approximately USD $102,000 at that time.

From April 30, 2024, to June 6, 2024, the Web3.js program has spent approximately USD $143,000, which includes labor, and operational overhead.

Funds raised in the following epoch will continue to be retroactively allocated to cover the ongoing high costs of maintaining the web3.js library and will be focused on the objectives highlighted in this post.

For any questions please reach out to bryant@chainsafe.io or bryanteurope on Telegram.

Total Funds Received from Octant so far

Total Funds Received: Circa 42 ETH

Funds Spent: 42 ETH

Detailed Utilization: The funds received from Octant have been utilized to support the Web3js team, which is comprised of salaries and operational overhead costs. These costs far exceed 42 ETH. However, they have directly contributed to enhancing developer onboarding and engagement, strengthening community support, expanding the Web3.js plugin ecosystem, enhancing the contributor experience, and continuously improving and expanding features of Web3.js. The detailed utilization for each milestone is provided below.

Milestones and Deliverables

Milestone 1: Enhancing Developer Onboarding and Engagement

Description: Work regarding version 5 and improving its performance remains ongoing. Multiple meetings are held each month to discuss the next version, size, and other factors that will significantly impact the community. The planning phase is expected to continue through the rest of 2024. Additionally, QuickNode has been added as the first RPC provider for web3.js, allowing developers to connect their applications to EVM-based blockchains from within web3.js. We plan to add more providers later in the year, furthering the simplicity and usability of the web3.js library.

Immediate Outcome: Ongoing discussions and planning for v5, addition of QuickNode as a provider.

Funding Used: All funds have been contributed toward program salaries and operational overhead.

Milestone 2: Strengthening Community Support

Description: The web3.js Ambassador program has been launched, and we currently have approximately 10 active ambassadors. Regular Saturday meetings with guest speakers are being held as a way to strengthen this community. We also recently completed a workshop at ETHCC in Brussels, with upcoming workshops planned for the Africa Tour starting late August.

Immediate Outcome: Increased community support, active ambassador program, successful workshop at ETHCC.

Funding Used: All funds have been contributed toward program salaries and operational overhead.

Milestone 3: Expanding the Web3.js Plugin Ecosystem

Description: Ora submitted a plugin and consulted with the team for review. Plugin ecosystem discussions are part of all workshops, with bounties planned for dApps built with plugins during the Africa Tour. Our goal is to not only establish long-term sustainability through paid plugin consultations, but also to empower individual developers to build their own. We see community engagement growth as a crucial aspect to enable this.

Immediate Outcome: Plugin submission and review, upcoming bounties for dApp development.

Funding Used: All funds have been contributed toward program salaries and operational overhead.

Milestone 4: Enhancing Contributor Experience

Description: The web3.js Ambassador program has improved the contributor experience, with ambassadors actively helping the community within Discord. Feedback submission forms and an AI bot have been added to the docs for better community engagement.

Immediate Outcome: Enhanced contributor experience, faster community support response times, and better feedback mechanisms.

Funding Used: All funds have been contributed toward program salaries and operational overhead.

Milestone 5: Continuous Improvement and Feature Expansion of Web3.js

Description: Moving AccountAbstraction (EIP4337) to the core library is on the roadmap. Initial research on wallet security has been conducted, and discussions with SnykAdvisor are ongoing to resolve the current security score.

Immediate Outcome: Initial research on wallet security, ongoing discussions with SnykAdvisor.

Funding Used: All funds have been contributed toward program salaries and operational overhead.

Karma GAP

Karma GAP Page: Link to Karma GAP grant details: https://gap.karmahq.xyz/project/-nan-11/grants?tab=overview

Challenges

Previous Challenges: There were no significant challenges reported in previous submissions.

Updates: No challenges have been reported.

Resolution: Not applicable.

Lessons Learned: Not applicable.

Outputs and Outcomes

Outputs (Last Epoch)

  • MS1 Output: More than 8 meetings held, addition of QuickNode as a provider.
  • MS2 Output: Hundreds of community support interactions (on and offline), 10 ambassadors acquired, 5 ambassador meetings held, diverse international workshop conducted at ETHCC.
  • MS3 Output: Plugin submissions received, discussions held in workshops.
  • MS4 Output: Contributions from ambassadors, feedback submissions via forms and AI bot.
  • MS5 Output: Progress in wallet security research, ongoing discussions with SnykAdvisor.

Short-term Outcomes

  • Outcome 1: Increased user engagement from the ambassador program, improved response times on Discord and GitHub.
  • Outcome 2: Better understanding and documentation of community needs for the v5 update, feedback loops established through workshops and community interactions.

Long-term Outcomes

  • Outcome 1: Sustained community growth through ongoing ambassador and workshop initiatives.
  • Outcome 2: Improved security and functionality of web3.js, contributing to a stronger ecosystem and higher user satisfaction.

Metrics for Outcomes

  • User Engagement: Weekly NPM downloads: 423,296 https://www.npmjs.com/package/web3
  • Adoption and Usage: 6,384 application dependencies https://www.npmjs.com/package/web3
  • Community Impact: Hundreds of community support interactions, 1 new commercial partnership formed, 10 new web3.js ambassadors.
  • Financial Metrics: Not yet a revenue driver, but 1 new strategic commercial partnership (QuickNode) since the last update.
  • Innovation and Development: 4 new features or products launched between June-August (Account Abstraction EIP4337, wallet security research completed, collaboration with SnykAdvisor, and the provision of AI operational support).

Plans for Potential Funds Raised in the Next Octant Allocation Window

  • Goals 1-5:
    • Description: As it has only been 2 months since the last update, our goals remain the same as highlighted in the June Project Update.
    • Expected Outcome: Not Applicable
    • Funding Needed: Not Applicable

Other Funding

  • Grant Funding Received Since the Last Epoch: No additional funding has been acquired since the completion of the previous epoch.
  • Other Non-Grant Funding Sources: No other funding from external sources has been acquired. The majority of web3.js funding continues to be supported from the Chainsafe treasury.

Future Plans for Financial Sustainability

  • Changes to Revenue Sources and Income Generation Plans:
    • Since the initial application, there have been no significant changes to our revenue sources.
    • Our primary focus for self-sustainability remains on providing custom consulting for use-case specific plugins, such as enabling developers to build on top of Superfluid using a dedicated Superfluid plugin.
    • Recently secured a strategic partnership with QuickNode, allowing users to seamlessly connect their applications to EVM-based blockchains, which introduces a potential new revenue stream.
    • Currently trialing this partnership, and if successful, we plan to expand to other RPC providers.
  • Additional Funding Plans: We also have plans to secure further funding through alternative Retro-PGF grants, but as of yet, have not secured any others other than what we have already highlighted in previous applications (Previous The Ethereum Foundation and OP Retro-PGF grant rounds).
1 Like

Hey @bryantchainsafe thanks a ton for the detailed writeup. I’m sure the template asked a bit more of you this time around, so I do truly appreciate you taking the time to go through it.

It’s really well written, and I only have 2 questions to follow up with:

  • How do you plan to measure and track the long-term outcomes, and are there specific metrics or milestones you’ll use?
  • Have there been any smaller, day-to-day challenges that the team has encountered?

I’m digging into the measurement side with a lot of projects because we’re conceptualizing this on our end as well, and I’m sure some really good ideas will get fleshed out as we explore how other projects are thinking about this. Cheers!

Thanks for the enquiry @james happy to answer it!

We plan to measure and track the long-term outcomes in the following two ways:

  1. Metrics
  • CDN Downloads - 15,455,557 for the month of July, 2024
  • NPM Downloads - 1,980,315 for the month of July, 2024
  • Dependent NPM - 6376 for the month of July, 2024

Our hope is that these numbers will be higher for the months that follow. (The above numbers are for that month only.)

  1. Developer Adoption and meaningful plugin submissions
  • We are commencing a DevRel Africa tour in one month from now of which we hope to see a measurable uptick in plugin submissions from that time and onward.

I hope this answers your questions!! :slight_smile:

Thanks,
Bryant