Hey everyone, Carl from Open Source Observer here, sharing the evaluation algorithms for Retroactive Public Goods Funding (Retro Funding) Season 7: Dev Tooling.
The Dev Tooling mission seeks to reward projects based on the utility they provide to builders in developing onchain applications. See the here for more on the mission’s objectives.
This season, Optimism’s Retro Funding is pioneering a "metrics-driven, humans-in-the-loop" approach. Instead of voting on projects, citizens vote on evaluation algorithms. Each algorithm represents a different strategy for rewarding projects. Algorithms will evolve in response to voting, community feedback, and new ideas over the course of the season.
Here’s a tl;dr of the three algorithms:
| Algorithm | Goal | Best For | Emphasis |
|---|---|---|---|
| Arcturus | Reward widely adopted projects | Established, high-impact devtooling projects | Prioritizes total dependents and the economic weight of those dependents |
| Bellatrix | Prioritize fast-growing tools | New or rapidly expanding devtooling projects | Applies a steep decay factor on older forms of GitHub engagement, favors Rust over npm |
| Canopus | Balance various forms of contribution | Tools with high developer collaboration & contributions | Puts stronger emphasis on GitHub engagement and developer reputation |
The algorithms all rely on a value chain graph linking dev tools to onchain builders and use OpenRank’s EigenTrust implementation to distribute trust between projects iteratively.
There are three types of core nodes in the graph:
Links between nodes, i.e., edges, are derived from the following relationships:
Metrics about projects and developers are used as a way of seeding the EigenTrust algorithm with pretrust assumptions. All other things being equal, edges that involve nodes with higher pretrust values will be weighted more heavily in the EigenTrust algorithm.
Pretrust metrics are applied to each node in the graph:
After constructing the graph and computing pretrust scores, we assign final weights to each edge before EigenTrust runs:
Each algorithm has its own set of weighting assumptions.
We’ve developed an initial three candidate algorithms for evaluating impact. Each algorithm highlights different priorities: Arcturus focuses on established adoption, Bellatrix puts more emphasis on emerging toolchains, and Canopus aims to look more closely at the quality of the developer community around a project.
We’ve included details on each algorithm below. We also have a Hex dashboard where you can see data on each algorithm.
Important: as projects are still signing up for the current measurement period, we simulated the results for each algorithm using past Retro Funding participants and historical data. The “top projects” below are based on onchain builders applications from RF4 and devtooling projects from RF3.
Arcturus rewards projects with significant current adoption by focusing on total dependents and downstream impact. It emphasizes the number of developers and onchain users benefiting from these tools, ensuring that cornerstone infrastructure is properly recognized. By applying only a modest discount to older events, Arcturus is best suited for rewarding established projects that many builders rely on.
Top projects (using simulated data):
Bellatrix is designed to spotlight projects and toolchains that are gaining in momentum. It applies a steep decay factor on older GitHub engagements and favors modern tooling preferences, notably prioritizing Rust over npm packages. This approach makes Bellatrix ideal for giving an edge to devtooling projects that are on the rise.
Top projects (using simulated data):
Canopus recognizes projects that have large active developer communities. It considers package dependencies alongside developer interactions, but puts extra weight on key GitHub engagement signals – such as commits, pull requests, and issue discussions. The result is a more balanced distribution of rewards across a broader variety of projects (not just the very biggest or newest). This approach can be a bit more susceptible to noise, since it values a wider range of contribution types, but it aims to ensure broader open source contributions are well-represented.
Top projects (using simulated data):
One of the proposed evaluation algorithm for the Dev Tooling mission will be chosen using approval voting. This means you can approve one or multiple options. For an algorithm to be selected, it must meet the following conditions:
The algorithm with the most approvals, provided it meets the thresholds, will be used for the remainder of Season 7.
To learn more about this mission, please see the Dev Tooling Mission Details. We also have more in-depth documentation on these algorithms in the Retro Funding repo.
If you have ideas on refining these models, let us know in the comments. And, if you want to contribute to making these algorithms better, submit a PR or open an issue here.