A Brain Dump on Service Provider Program Season 2

Over the past few days, I spoke with seven of the nine service providers to gather feedback on the program’s effectiveness and potential improvements. Below is a summary of ideas and conclusions. Nothing is finalized—this is a brain dump of interesting solutions that I’d like broader input on.


1. Positive Feedback from Service Providers

The Service Provider Program, approved by the DAO last November, held elections in December, with funding streams starting in late February. Providers consistently shared similar feedback:

“We couldn’t have achieved what we did this year without the funding streams. Last year, we struggled to stay involved with ENS, and now we have multiple developers working full-time. We hope to continue next year.”

While these views come from the most direct beneficiaries, the general consensus is that the program has been an innovative and cost-effective success.

I, too, hope it continues. While the DAO must reapprove the program, I’m optimistic. MetaGov stewards have asked me to continue leading it, even if I’m not on the working group (WG).


2. Shifting Votes to Q1

Last year’s elections in December overlapped with Steward elections, creating challenges:

  • High demands on delegates and candidates’ attention.
  • Candidates had to apply for both roles simultaneously.
  • New streams were managed by incoming stewards during a busy end-of-year period.

This year, elections won’t happen in December. While the program guaranteed a minimum one-year commitment, it was funded for 18 months. This allows elections to be held in mid-Q1 (February or March), after most holidays.

Three votes will occur:

  1. Program Reapproval and Budget: A DAO vote to reauthorize the program and set the budget.
  2. Service Provider Selection: A vote to select providers.
  3. USDC Allowance Update: An executable vote to adjust the superfluid stream allowance.

Since streams flow to a DAO wallet, any other stream adjustments will be managed by stewards without additional votes. Stream updates will occur about a month after the selection process. This ensures:

  • Continuity: Re-selected providers experience no funding interruptions.
  • Notice Period: Providers not re-selected receive a one-month notice before funding ends.

3. Ranked Choice Voting with Round Robin

I’ve advocated for ranked-choice voting (RCV) using the Copeland/Round Robin method. This approach ranks all candidates, unlike Instant Runoff Voting, which identifies a single winner through eliminations. For service provider selection, we need an algorithm that produces a ranked list of candidates.

If Copeland + RCV is available, we’ll use it. Otherwise, we’ll default to the Approval voting used last year.

If we adopt Round Robin, I propose including a “NONE BELOW” option. Voters can express their preference to disqualify any team ranked below this choice. Similar to last year’s “NOTA” option, teams ranked below NONE BELOW would be disqualified.

4. Two-Year Streams for Top-Ranked Projects

Service providers expressed concerns about the annual reevaluation process, citing its political and unpredictable nature. Many emphasized the strain of reapplying annually, though they also acknowledged the importance of regular DAO oversight.

To balance stability and oversight, I propose a two-tier funding system:

  • Top-ranked projects receive two-year funding.
  • Lower-ranked projects receive one-year funding and must reapply annually.

This approach provides three benefits:

  1. Projects with strong DAO support don’t need to reapply annually.
  2. Lower-ranked projects can still secure funding but face annual reevaluation.
  3. Service provider turnover is staggered, ensuring continuity and integration of experienced teams.

Implementation: In the first year, the top third of the budget (not projects) would be allocated to two-year streams. From the second year onward, this would shift to the top half. This ensures half of the funding rotates annually, balancing continuity with accountability.

Visually it looks like this:

For simplicity’s sake let’s assume all projects ask the same amount and the total budget can accommodate six projects (and everything remains constant over the years). In the first year, two providers get a two-year stream, while four get a single year. On the next year these four will need to apply again for more funding and two of them will get a two year stream while two will only get a one year. Subsequent years remain the same, with half of the providers needing to apply every year and half of it applying every two years.

5. Allow current providers to make two asks

Last year’s “knapsack” selection system encouraged modest budget requests, prioritizing smaller, high-ranking projects. However, the binary nature of the process discouraged providers from proposing expanded scopes, fearing rejection.

To address this, existing service providers should be allowed to submit two budget proposals: with their according scope.

Both budgets would be treated as separate candidates during ranking. If one is selected, the other is automatically removed.

Imagine an example in which there are three candidates who put forward two budgets each, and the total budget is only $600k. They go to a vote and the final rank is as below.

Rank Proposal
1 Alice Big Ask ($400k)
2 Bob Redux Budget ($100k)
3 Alice Small Ask ($200k)
4 Charlie Super Budget ($300k)
5 Bob Big Budget ($200k)
6 Charlie Small Budget ($100k)

In this case, when Alice gets her 400k project approved, her 200k one is immediately taken out of consideration. Then next, Bob’s $100k project is approved and his $200k is taken out (even though there would be enough budget left over) because the smaller project is ranked higher. Now there’s not enough budget left for Charlie’s $300k project, so that’s disqualified, but because Charlie was allowed to put a smaller redux version, he can still get in the program with a reduced $100k budget.

To reduce clutter and decisions, this option would be available only to current service providers and it would be limited to two budgets. It’s a way for them to ask for a raised scope but keep on the program if it’s denied.

6. Lower-Tier “Talent Provider” Program

The Service Provider program has supported larger teams but could benefit from a lower tier for individual developers or niche contributors.

A new Talent Provider program could allocate a small annual budget ($200–500k), allowing individuals to apply for funding in increments of $10k. This would support roles like:

  • Content creators
  • Auditors
  • Event coordinators
  • Voting assistants
  • and other types of talent we can’t predict now

This lower tier could nurture talent and grow the ENS ecosystem.

7. “Graduating” from Service Provider

Recently the Unruggable team has asked for 1.2 million stream, outside the scope of the Service provider. I have expressed my concerns that this could go against the whole purpose of service providers, as it could create a race for developers asking individual streams. Most developers I’ve asked had the same fear for others, although they expressed that they themselves saw no need to ask for individual large stream at the moment. Regardless, there should be opportunities for teams to ask for additional funding from the DAO (as Blockful did) or to ask for a large project with a much broader scope (as unrugabble intends).

We could remove the limit on the service provider program ask, but that could mean that one 2M project would be competing with attention to a 200k project. We could also create a higher tier for the program in the molds of the small tier for Talent Providers, but then it would create a weird situation of asking the DAO for a very large budget for yet to be unspecified projects which are not necessarily needed. Also, large asks should be treated individually and considered in their own merits.

I propose increasing the limit from last year of 1M to something larger like 1.2 million per year (or even 1.5M). I also would propose increasing the minimum ask from 100k (which nobody asked anyways) to something like 200k or 300k to make sure we have solid and serious asks (smaller asks could go via the talent pool).

I think any project above that ceiling should be voted and considered separately, in a similar fashion that Unrugabble is doing. I think it would be important to create a proper standard format for that, both on the process of asking and the tech behind, to make sure we don’t end with different technical solutions to the same means. I don’t know what that would look like but I believe in paving the cow paths, and the current projects are definitely setting these first paths.

8. Mandatory Quarterly reports

While the last program, transparency and showing up on calls was encouraged, no specific framework was given. We will take a look at what we considered best practices of progress report and make it mandatory for the next year.

9. On a Meta Budget

A final consideration is that while everyone wants great projects to be generously funded, the reality is that the DAO operates within the limits of its income. In many ways, the yearly budget resembles the Knapsack algorithm used on the selection: we start with a total budget and prioritize spending based on ranked needs. Personally, as the creator of this program and a two-time steward I believe those are great uses of the DAO’s fund but I would have no hesitation cutting the budget for both if the DAO only had enough funds for the development of Name Chain by ENS Labs—they’re doing excellent work. Deciding who comes second, third, or fourth in priority is more subjective.

While the DAO votes on individual proposals (“trees”), it’s the responsibility of the Metagov working group to maintain a broader perspective and not lose sight of the entire “forest.” This group has weekly calls with Karpatkey to assess the DAO’s financial health and determine its true annual budget.

My suggestion is that at the end of each Metagov term, the working group should take a holistic look at the DAO’s finances and calculate an annual spending cap using a formula like this:

  1. Take all DAO income from the past year derived from registrations and renewals.
  2. Deposit half of this total into the endowment.
  3. Calculate the yield from the endowment and halve it.

The combined amount—half of last year’s income plus half of the endowment yield—should determine the DAO’s spending for the next year. This provides a sustainable way to budget while allowing for growth in the endowment.

Before any major vote is put forward, the working group should consider how it aligns with this budget cap and its long-term implications. Balancing generosity and financial sustainability is crucial to ensuring the DAO can continue supporting projects while safeguarding its future.

10 Likes

As an individual that obtained the initial 10,000 votes necessary to be included in the Service Provider Nominee vote - and though I don’t think I’d attempt to go through the process again - this has the potential to fill a gap.

Slight suggestion, revise the proposed name “Lower-Tier ‘Talent Provider’ Program.” Although intended to reflect the smaller minimum streams, it sort of reads as the individuals having low talent :sweat_smile:.

If the ENS DAO fellow program is no longer active, I’d suggest using “ENS DAO Fellow” as this sounds like it fulfills the original intent of the fellow program and otherwise serves as a successor for individual contributors. “Fellow” has a certain prestige while simultaneously serves to carry forward the history and continuity of the original program.

5 Likes

A 2-year option seems like a good idea.

What if a provider asks for the maximum, and is ranked such that 90% of the “two year budget” is already taken?

I’d suggest instead specifying that a provider can only qualify for a 2 year grant if they have already successfully received a 1 year grant.

Also, a way in which the DAO can give notice to terminate a provider becomes more important as the maximum duration of a grant increases.

Finally, it seems likely that there’d need to be some way for a 2-year stream recipient to request a budget adjustment outside the 2-year cycle.

I understand the motivation here, but this seems to introduce a lot of complexity to the budgeting and voting process. I think this is best left out. Perhaps candidates could simply state their Minimum Viable Budget, and at the end of the selection process, a candidate may be included if the remaining budget is at least that minimum?

Alternatively, if we must, this could be equivalently expressed as “base budget” and “extra budget”; the expectation being that the “base budget” for a candidate would always rank higher, and thus there’s no need to eliminate accepted proposals etc.

:+1:

1 Like

Thanks for putting this together!!

I want to echo this. Service Provider Program has allowed us to create a team of 3 full-time, 2 part-time people, and a few occasional contributors. We all absolutely love it, we’re grateful, and we work hard to prove it.

This makes sense. Overlapping elections are difficult to navigate, require a lot of time from delegates, and in this case, they put a lot of work for newly elected stewards. Best if we space things out.

I like this idea. This rewards the best teams and alleviates some of the financial pressure. Plus it allows for more teams to be added to the cohort each election period (assuming teams who receive a 2-year grant won’t reapply the following year after receiving one).

Support. Excited about this one and I think it’s important, but tricky to execute. Reason for supporting it: building on a lot of our existing work, we need more money to keep up with our own growth and the service we provide to others who use ENS through us. Something like this is good because it decreases the chance of good teams potentially losing ‘safety-net’ funds that keep them operational (but fully maxed out in our case) and yet provide an option for more funding if it makes sense.

Suggestion for elections: Demo Day

Demo day event (possibly live stream) for those applying. An opportunity for all team to present their work and application to the Delegates, the ENS community, and everyone else! Basically, a short pitch of the application and previous work (if applicable). If not a live stream, we can submit videos doing the same thing and then do a public Q&A or some shorter live sessions. Open to ideas if this suggestion makes sense.

The reasoning behind this is to:

  • Make it easier for Delegates to go through all applications - sit back, relax, and watch people presenting, therefore likelihood of voting increases as well. Being more informed → better decisions → responsible voting.
  • Give visibility to everyone (old and new service providers applying)
  • Attract new talent and more eyes on the ENS Service Provider program and the ENS ecosystem in general
  • Cross-collaboration marketing campaign with someone like Kick or Unlonely.

This reminds me of the Fellowship program we had some time ago I think. So this is like a natural step forward and I like it. With a budget of 200k-500k, we can do A LOT here.

Besides the mentioned roles, I usually advocate for researchers to create case studies of companies integrating ENS, which could be leveraged to get more partnerships and integrations.

Example: a beautifully designed and a joy to read case study of cb.id integration, including: implementation details, what results it brought, how it improved the wallet, the onboarding experience, customer satisfaction level, etc. Which can later be used as an educational piece to onboard new wallets.

Comment on Auditors + Suggestion

I want to float the idea of having a dedicated pool for audits or subsidized grants to chosen auditing companies or teams, that Service Providers can use. This doesn’t have to be absolute top-tier companies charging six figures per audit, but something cheaper and as good as possible.

For reference, we did two audits in the past 1.5 years both of which we had to pay ourselves, and took a 50% salary cut each month. To maximize security and quality, while decreasing the expense at the same time, we dug through previous ENS public audit reports from Code4rena and hired only those auditors who found critical or high-severity bugs in previous ENS bug bounties or audits. We thought they had the upper hand compared to others since they knew ENS protocol and found only major issues.

Similar group can be assembled for Service Providers. These were, we believe, high-quality audits for a fairly small amount of money compared to high-end ones.

Yes. Comments on behalf of Namespace.

We are currently fine with the Service Provider Program as is. However, as we keep integrating our services with more companies, we could face some unpredictable scaling scenario that needs to be addressed.

  • Namespace-sdk (L2+Offcain subnames) is being used by more and more projects/companies. Two wallet (as a service) providers are currently using our SDK to issue subnames. One is – unicorn.eth that allows brands to launch their own wallets and onboard people through issuing Subnames. One such client, theirs and ours, is ETH Denver which issues subnames from ethdenver.com to their users. In a short few weeks, and months before the ETH Denver event next year, they created 3k wallets (issued 3k subnames). If they keep onboarding more people (which I believe they will), and namespace-sdk keeps on getting integrated with other big projects (which I believe it will), this could result in a sudden rise in costs to support running this infrastructure (depending on the daily/weekly/monthly usage ofc) and these can fluctuate too.
  • Even though we’ve been ‘hustling’ this past year (getting free credits from Digital Ocean and getting accepted to the Google Startup Program and received free credits from them too, which now requires us to do months of work to migrate from one place to the other just to keep these costs at a minimum), this is not something we want to rely on for the long term. We need to be sure we can support the volume that will inevitably come in the future and provide premier subname services to everyone with no risks.
  • Therefore, I think we need to solve this now or in the future. Not sure what’s the best way to do it but if Service Providers are doing a good job they should have accessible funding options for that and not rely on the stream to cover those expenses. If this is not possible, that’s fine too but we need to know that in advance so we can include those expenses in the application as part of the budget.
  • Btw, we also tried charging for Subnames. Even though we charged a minimum (to cover basic costs) that adds an additional barrier to adoption we would like to avoid at least for the foreseeable future.

In support of this. We’ve been doing them regularly along with some other teams.


Observation

Broadly speaking, ENS scaling happens on 3 different levels:

  1. Infra level: ENSIPs, protocol upgrades like NameWrapper, Namechain development, etc. most important and managed by ENS Labs mostly.
  2. Dev Tooling level: integrations + continuous updates with major public and private libraries (blockchain tools and service providers) that give probably 99% of devs direct access to ENS services - WAGMI, ENSjs, ethers.js, Web3js, VIEM, etc.
  3. App level: partnerships + consumer-facing apps like marketplaces for registering and trading names, apps for subname issuance and management, dapps finding creative use cases for ENS and spreading adoption, or dapps using ENS as their core piece of infrastructure - ENS Fairy, Fluidkey, Unicorn wallet, Coinbase wallet, etc.

These 3 levels as very important for the growth of ENS and maintaining its #1 spot in the market. I’m in favour of infra work being the #1 priority, but a big focus should be placed on #2 and #3. Especially since we are moving into the ‘identity’ era and I’m expecting ENS to be used as a general-purpose naming service for everything web3.

1 Like

Once the two year budget is filled, whatever remains goes to the remaining budget. If the DAO wants to award all the two year budget to one or two best developers I don’t see it as a problem, in fact if they were the top votes it probably means they would get an extension next year anyway. Agree that limiting the two year option to someone who has already been a provider for a full year.

The DAO can always terminate a provider but I’m ok adding some sort of obligatory notice period, specially if the provider wasn’t at fault necessarily.

Not sure how to address the budget adjustment. But we would have another year to figure it out.

I’m open to alternatives in which a provider can ask for more without risking too much not participating at all. I wonder if the approach of Minimum Viable Budget would only cut the budget of the last ranked ones, and therefore encourage providers to inflate their ask. A way to improve it would be add another tier rank: the top third ranked proposals get two years, the middle third gets one year but full budget, the bottom third only get their minimum budget approved and only a single year.

Yes I support this! I also like calling the “low tier talent” (it was intend to be read as “low tier” - “talent stream” not a "low talent stream!) as Scholars or Fellows, like @ENSPunks.eth suggested.

1 Like

No, I’m asking what happens if someone gets voted in requesting a 2-year budget, but only part of their ask is possible with the remaining budget after filling higher-ranked applications. Does it get denied in its entirety? Do they get only a 1-year budget? Does the 2-year budget allocation effectively get increased to cover the shortfall?

If the two year budget is not enough to cover the next ranked candidate then the remainder of the budget goes to the one year budget and that project gets approved for that.

Then, if we use the “minimum viable budget approach”, I imagine if the remaining one year budget isn’t enough to cover the next ranked candidate then we try to fit their minimum budget instead (and from then onwards we try to fit only minimum budgets, or something to that effect.)