A big part of SourceCred’s vision is the desire to create project-specific cryptoassets, called ‘Grain’, which represent contribution to or support of a project. Here’s an overview, as lifted from my own writings on GitHub.
SourceGrain will make open-source software projects financially sustainable by letting them issue their own project-specific cryptoassets, called grain.
- Grain is always project-specific. For example, “SourceCred grain” and “IPFS grain” would be wholly different assets.
- Every week, new grain is created, or “harvested” by the project.
- Most of the harvested grain goes to people that have directly worked on the project.
- A fraction of the harvested grain flows to those who hold grain in the
- For example, if you have grain in Python, then you would continually earn a small share of NumPy’s grain, and so forth.
- Grain is a freely transferrable and exchangeable asset. Most likely it will be implemented as an ERC20 token, meaning that it can be bought or sold using the 0x Protocol.
There are three ways to acquire grain in a project:
- Contribute to the project directly.
- Financially support the project (either directly, or by buying grain from a contributor)
- Own grain in the project’s dependencies.
In all of these cases, owning grain means that you’ve supported the project in some way: either via direct contribution, financial support, or by supporting a dependency. Therefore, grain is a proof of support for a project.
Projects could choose to reward their supporters, by giving prioritized attention to those with a lot of grain. For example, projects could reward grainholders by prioritizing their feature requests and bugs, or giving them a say in project governance. Crypto projects could even give tokens directly to grainholders. (For example, a cryptocurrency could direct 10% of its block reward to everyone who holds grain in the project itself.)
Rewarding grainholders would be in the best interest of the project: if owning grain confers valuable rewards or access, then more people will want to buy it, increasing the price. This will mean a greater reward for the project’s developers, meaning more people will work on improving the project itself. The result will be a positive economic feedback cycle.
Another way of raising funds for grain-supported projects will be licensing along the lines of a Harberger Grain License, whereby proprietary dependencies of open projects will need to pay a tax, and the tax consists of buying and burning a project’s grain.
Thus, grain will serve a lot of economic functions for open-source projects:
- It provides a new way to support an open-source project: by buying its grain.
- It provides a way for contributors to earn money for their work: selling the grain they earn for contributing to the project.
- It provides funding for widely-depended on open-source infrastructure: such projects will earn grain in all of their many dependencies.
- It lets users of a project who need prioritized support or access to acquire it, by paying the developers.
- It provides rewards for early investors in successful projects, both via grain appreciation, and via dividends from dependent projects.
I think of SourceGrain as producing general-purpose economic infrastructure for open-source projects.
It would not be inaccurate to say that SourceCred exists so that SourceGrain can be a reality. Actually, initially I was thinking of these as a single project. However, over the course of some convos with @jbenet, I realized it made more sense to split the reputation protocol and the crypto-incentive parts into separate projects, much like how IPFS (protocol for storing data) and Filecoin (incentives for storing data) work best as separate but related projects.