Ethers.js - A simple, compact and complete JavaScript library

Octant Grant

Project Description: Ethers.js is the most popular Ethereum (and related blockchain) JavaScript library used for front-end dapps, scripts and tools. It has always been permissively open-source (MIT License) and credibly neutral (no VC funding or quid-pro-quo funding).

Public Repository: Ethers on GitHub

Budget Breakdown

The budget for Ethers tends to be an on-going process, still being established. It is entirely managed by a single person, and an additional developer is being added to assist. But as such, there is no accounting team or marketing team (and hence no marketing budget).

Historically, all funding went into a central treasury, from which a salary of $24k/year was paid to RicMoo for the last few years (prior to that it was entirely pro bono in his spare time ;)). This year, the salary will be increased, likely to around $120k/year.

Funding otherwise is spent on server resources, software licenses, corporate obligations, and necessary travel.

Milestones are also fluid, as Ethers follows trends in the Ethereum ecosystem. For example, a month prior to BLOb support being added, there would have been no milestone for BLObs, since they were unknown at the time.

General milestones however include:

  • Assistance; via Discord, GitHub and other channels, a significant amount of time is used helping individuals both with ethers and general blockchain concepts and development
  • Improving Documentations
  • Improving performance
  • Creating applications on top of Ethers to ensure it still meets the needs of developers
  • Responding to GitHub issues

Funding Requested: $ / ETH

There is no set amount in mind, but $1k/mo towards server costs would be wonderful as well as anything to help offset salaries drawn from the treasury would be nice. :slight_smile:

Plans should you fall below, reach or exceed funding goals:

Ethers does receive funding from a variety of sources, so regardless of funding, Ethers will continue to best library it can be. :slight_smile:

Impact Measurement and Reporting

Short-term Outcomes (0-3 months):

The main short-term deliverables are:

  • First-class Account Abstract support (using a smart-contract wallet should be no different than using an EOA or Ledger)
  • Performance improvements
  • Full ENSv2 support
  • Automatic socket (WebSocket and IPC) re-subscription on disconnect
  • Many smaller feature requests which exist on the GitHub repository

Mid-term Outcomes (3-6+ months):

While market-share has never been a goal of Ethers, a core advantage of Ethers has been its documentation, which will receive a significant increase in time and resources. A second developer has been tagged to help out expand the docs and add more examples. Excellent documentation helps engagement, adoption and growth.

Long-term Impact (5+ years):

Looking 5 years into the future is beyond difficult, but a lot of the historic funding Ethers has received has gone into a treasury to ensure Ethers can thrive and hire additional help as required, even during times where it is difficult to acquire additional funding.

The goal of Ethers has always been just to provide the best possible library for its purpose. It was created by RicMoo, for RicMoo. So, it will continue being a tool maintained by someone who uses it extensively himself. :slight_smile:

Outcomes Measurement:

  • Metrics are hard for open-source software, but some (albeit fairly weak signal) metrics include monthly downloads (currently 5.4m/month) and GitHub stars (currently 7,900). However these metrics are quickly being captured.
  • A metric that has a longer lifespan as to overall impact is all-time downloads (161 million), since this is harder to capture, but will be in due time.
  • An issue overall is any metric worth using is currently used for issue grants and such, so the value in capture is high; I am open to suggestions. :slight_smile:

Interim Reporting

Regular Updates:

I have historically provided quarterly updates on my blog, but otherwise contribute daily to issues on GitHub, which provides more immediate feedback on current features or bugs being worked on. The “on-deck”, “next-patch” and “next-minor” categories in GitHub can be used to see what’s happening in the day-to-day.

Milestone Verification:

Currently most of the verification is done via GitHub issues. Every commit is linked to the relevant issues being addressed.

Sustainability Plan

Financial stability isn’t really a goal, or perhaps I misunderstand this section.

Ethers is expected to be and remain a public good, which maintains a treasury and regularly seeks funding to help keep it thriving.

It is no sense ever meant to be a “business” or focus on profit/revenue and seeks to remain credibly neutral.

Case Studies and Testimonials

Gathering Feedback:

I generally rely on GitHub issues, discussions, Discord and Twitter/X for feedback.

Showcasing Success:

I generally release blog articles if there is something interesting to showcase, and in the documentation and cookbook there are often useful examples.

I also generally present during conventions multiple times throughout the year, such as DevCon and EthCC.

Advancing Values of Freedom and Privacy

I am personally an advocate of privacy and freedom; no Ethers site collects any personal data (including server logs) and no cookies are ever used.

Otherwise, in general blockchain technology itself is akin to a privacy-preserving technology.

Supporting Decentralization

Ethers.js provides a simple and complete library for operating with blockchains and other decentralized technologies (native IPFS support; included Skynet, etc. extensions).

In general, blockchain provides strong support for decentralization.

Team Information

Richard Moore (RicMoo) - Twitter/X, GitHub

The only author of Ethers.js, he has been in the ecosystem since 2013, part of the Ethereum launch in Toronto, writing some of the first web-based wallets (EtheruemWallet, Kryptokit and Jaxx). He is also an ENS advisor and presented at many DevCons.

Social Proof

  • OpenZepplin Drips Supporter; link
  • ENS Ecosystem; link
  • Drips directly supports Ethers; link
  • Ethers npm dependants (12.3k) includes Uniswap, Hardhat, Multicall, 0x, ENS, OpenSea, Gnosis, OpenZepplin, Marker, Tenderly, etc.
  • Ethers is one of the top 500 projects on NPM based on number of projects that rely on it as a dependency

Transparency

Another near-term plan is to set up a multi-sig wallet to manage the treasury. Most of the funds currently live at donations.ethers.eth, but a few other accounts are used as well (mostly due to legacy programs which make changing it difficult).

Generally, sufficient assets from any donation are sold for fiat (via CEX) to cover tax obligations. USDC (DAI and other stable coins) is usually used first, for paying server fees, infrastructure and software licenses. Governance tokens are generally kept (aside from tax obligations) in the treasury and not sold; any significant sale of governance tokens would be discussed with the relevant teams in advance.

Salaries and services are paid for in fiat from a Canadian bank, held under the “Genetic Mistakes Software Inc” corporation, a company started by RicMoo in 2011, which is also the target of any assets converted via the CEX.

Other funding

Ethers has received many forms of funding over its 6 years, since 2018. All funding sources are credibly neutral and no form of preferential treatment has been accepted.

  • Various EF grants (2018); ~$50k
  • GitCoin grants (2021-2023); $250k
  • RetroPGF 1 (2021); 11.5 ETH
  • RetroPGF 2 (2023); 209k OP tokens (in general the Ethers treasury does not cash in governance tokens beyond tax obligations; selling votes feels weird)
  • Drips (2023-current); $31k
1 Like

Trying to help, have you consider using donation platform and tools like https://buyabeerfor.me ?