SourceCred

Setting up an Independent SourceCred Foundation

Shortly after SourceCred’s founding, @Protocol Labs (PL) decided to officially support the project. As part of that, I joined PL, which became the de-facto home of the SourceCred project. Since then, PL has helped the project in many ways, most notably paying me (and, for several months, @wchargin) to focus on the project full-time, providing logistical support, and acting as the initial Grain purchaser.

Now that SourceCred is starting to get up and running, I think it’s time for SourceCred to spin out from Protocol Labs, and set up its own independent entity. As part of this, I imagine the entity hiring a few people to commit full-time on growing SourceCred. This has a few advantages:

  • Protocol Labs has many larger projects, which it understandably prioritizes. Having a smaller team (but which is fully focused on SourceCred) will allow us to move faster and more decisively.
  • It will enable SourceCred to raise capital and budget independently, giving us more financial flexibility and robustness.
  • Since SourceCred is a distinct community from Protocol Labs, having our own independent entity which is governed by our own values and processes (e.g. cred-weighted voting) will give us more sense of empowerment and ownership over our shared creation.

I’m happy to report that the PL leadership is supportive of this plan, and we’re going to work together to have a smooth transition. In particular, they’re going to help us with setting up the new entity, raising capital, and will still be providing support. In return, I want us to do a good job of giving PL cred for all of the important support that they’ve offered, and that they will offer in the future.

Metaphorically, it’s like SourceCred has been a kid living in PL’s house. Now, SourceCred is growing up, and it’s time for us to move out, on good terms. Our new apartment may be less fancy, but it will be ours. :slight_smile:

This transition will occur in 2020. Around the same time, we will find a few value-aligned VCs who want to commit to purchasing large amounts of Grain. This will increase the financial flows going through SourceCred–so that we can start paying multiple full-time salaries to contributors. This will enable us to build a stronger and more committed team to keep growing and developing SourceCred.

As I alluded to above, having our own legal entity will also allow us to have our own balance sheet. (I imagine the balance sheet will be initially funded by creating a lump sum of Grain.) Having a legal entity with a bank account would let us do several interesting things:

  • Organize “CredConf”, bringing together key SourceCred contributors and partners in meat-space, including getting a venue and paying for folks’ flights
  • Pay some contributors upfront salaries
  • Potentially arrange health insurance / other benefits for high cred community members. (Maybe set a price in Grain?)

As we plan for this entity, we should be cognizant of the risks of creating a centralized entity within a decentralized and open-source project. It presents the risk of creating an “insiders/outsiders” dynamic, where people who are explicitly part of the entity have privileged access to information and ability to coordinate. It would be especially pernicious if people inside the entity get paid preferentially to open-source contributors, since that would tend to entrench unhealthy power dynamics.

However, being able to hire some key folks (e.g. an operations lead, a core developer, maybe a design lead) would greatly improve the project’s ability to execute with a consistent tempo. Without promising economic consistency in the form of a salary, it may be hard to get people to give us the kind of upfront “championship” style commitment that can anchor the project’s future.

Here’s one proposal for working within these constraints:

  • We establish a SourceCred Foundation (SCF) as a centralized entity within the SourceCred project. We give it a one-off endowment of Grain that it can sell for $ as its initial source of funding.
  • SCF’s governance will be based on voting from Cred-earners and Grain-holders
  • SCF can hire full time employees to work on SourceCred. From SCF, they will receive only salary (SCF has no equity). The salary will be considered an advance on future Grain, so that as the employee earns Grain, 50% of it goes directly to SCF until they have “repaid” the advance (with some risk compensation to SCF, e.g. they need to pay back 125% of the advance)

This means that SCF will be using its financial clout to de-risk SourceCred contributors’ financial future: SCF takes on some of the risk that a contributor won’t earn a lot of Grain, so that contributor can commit to the project with confidence. However, it ensures that the big rewards for everyone (whether inside or outside SCF) will come from our public SourceCred instance, rather than from SCF internal politics. If SCF becomes nepotistic and starts hiring people who aren’t actually earning Cred/Grain, then it will start to lose money, and will be forced to course-correct. Also, anyone could form a competing org which offers a better deal to contributors.

Please let me know what you think of this plan! It’s in early stages, and I have a few other versions I’m simultaneously considering.

For example, instead of having the “SourceCred Foundation” as an opinionated entity that is pushing forwards SC development, we could make SCF a very unopinionated neutral-grounds type org that just holds the IP and trademarks and such. Then, we could make another entity (“CredCorp” or “CredCooperative”) which is an opinionated and cash-rich entity that is driving forward SC development. This could have the benefit that it’s clearer that anyone else can make competing centralized entities that advocate distinct visions for the ecosystem. However, it’s higher complexity since now we’re setting up more entities.

2 Likes

Thanks for calling this out—I think that it’s definitely important to avoid both this dynamic and the perception of such a dynamic.

A couple questions:

It sounds like the idea is that SCF would sell its endowed grain to VCs and/or PL to bootstrap its funding. If that one-off endowment is intended to amount for a handful of full-time salaries for at least (say) 2 years, the grain generated in this endowment would need to dwarf all current grain, right? How does this influence dynamics—e.g., of people who currently want to sell part of their grain?

If the goal is that the full-time employees should be “weaned off” the salary/advance hybrid onto pure grain within a relatively short time frame (say, 2 years), that certainly creates a strong requirement about the ability of the system to recognize contributions from people like lawyers, community organizers, or other non-engineering contributors working full time. I’m curious—how do you imagine that working in the near term? Are Discourse posts enough? If a nontrivial portion is from manual nodes, how do you avoid capriciousness or nepotism, or perceptions thereof?

1 Like

Good question. At time of writing, we’ve issued $45k worth of Grain, which is very small relative to the value of the project. By the time we are endowing SCF, we will have issued a lot more Grain to contributors. You can read about my plans for “retroactive initialization”, after which we’re going to issue a lot more Grain to contributors.

I think that in order to get VCs on board, we will need an explicit framework for how much Grain we will issue, and how it will inflate. A simple model might be to provision for (say) 2B grain upfront, of which 500M will be distributed upfront to contributors, 500M will be given to SCF as seed funding, and 1B will be held in reserve to distribute to contributors based on future Cred. Then, we could also create a process whereby the Cred-earners and Grain-holders can approve issuance plans that create more Grain every year to keep rewarding contributors. See this post on separation of powers for some related ideas.

Creating a strong internal pressure to recognize non-technical contributors is a feature, not a bug. :slight_smile: I’m confident that the supernode system will give us the right primitives to recognize all kinds of value. As you note, capriciousness or nepotism (or perceptions thereof) in configuring the supernodes will be an important issue. We’ll need to think more about the governance processes that will regulate this. (Will we have a sort of “SourceCred judiciary” that makes judgements in disputed cases? Will there be an elected “Cred Executive” who has final say in such questions?)

Also, I don’t necessarily intend for FTEs to get “weaned off” of the salary hybrid model. The SCF will be rewarded for the risk it’s taking on, in that they get repaid more than 100% of the advance to compensate for the risk they’re taking. If the SCF is doing a good job, its Grain endowment should actually grow over time.

However, contributors that are very confident in their future Grain rewards may generally prefer to exit the official salary arrangement, since they aren’t taking on as much risk by just taking all their Grain directly. So people might choose to wean themselves off.

1 Like

Some things worth looking into:

https://www.commonsconservancy.org/ offers to be a parent foundation so you can set up your own with less overhead while keeping your own governance.

Social Purpose Companies are a legal approach to enshrine a “social purpose” that you can pursue without a profit motive. Most importantly this can shield you against lawsuits by shareholders for not maximizing profits.

PL will still check in and ask to make sure you’re eating enough. =)

All this talk of checks and balances make me reflect favorably on the design of the US government, as intended - specifically, splitting power explicitly between the house and senate and making them cooperate to pass a law (again, in theory) seems pretty applicable to allocating power based on total grain (state population) and based on some grain threshold (statehood). I imagine there’s a neat generalization about allocating power based on every possible group you might want to favor, and a policy change passes iff a majority from each group votes in the affirmative. Then some computation on the sets and set membership would be able to map this to a stellar-consensus-protocol-like system where you could clearly see what individuals from which groups would be needed to pass the policy.

Also, I really like this model:

It has the nice feeling of being analogous to hiring with stock options, but with a better, SC-y definition of “value”.

2 Likes