SourceCred

CredSperiment System Overview

The CredSperiment creates a game in which people are rewarded for contributing to SourceCred, based on SourceCred’s own scores. It revolves around quantities (Cred, Mana, and Dollars) and flows between quantities (Donating, Earning, and Boosting).

This document gives an overview of these quantities and relationships. The goal is to define the general shape of the system and its information/incentive flows.

Quantities: Cred & Mana

Cred

Cred is a score which represents how much one has contributed to the project. Every contributor to the project has an associated cred score. The cred score can (and will) fluctuate in both directions; a contributor’s cred might increase (because their contributions have been adding a lot of value) or might decrease (because their contributions are going stale, or being re-assessed downwards).

Cred is not transferrable between identities, and never will be.

Mana

Mana is a point accumulator that represents how much one has supported the project. One can earn mana based on their cred cred, or by contributing to the project financially. Unlike cred, mana does not dynamically recompute. It’s more like a currency or token, in once one receives mana, its theirs until they spend it. However, unlike a currency or token, mana is not transferrable, and is not exchangeable for money.

We might someday make a token influenced by mana (see grain), but that’s speculative at this point.

Flows: Donating, Earning, and Boosting

Donating: Dollars -> Mana

Anyone can receive mana by donating money to SourceCred. The system is simple: for every dollar contributed to SourceCred via our opencollective instance, the patron will receive one mana. This reflects the fact that mana represents “proof of support”, and financial support is valued!

Note that you cannot convert mana back to dollars. Also, the amount of mana you earn per dollar donated might change in the future. (Also, we might make the dollar-mana ratio different than 1, e.g. 100 mana per dollar, to make the numbers feel larger.)

Earning: Cred -> Dollars OR Mana

A dollar-mana represents the option to receive one dollar (thus getting paid for your contributions) or one mana (thus supporting the project, by choosing to work for free).

Every week, we will decide a dollar-mana payout amount. For the short term, I expect the dollar-mana payout amount to be fixed each week, although later we may make it based on the total amount of cred created that week.

That dollar week payout amount will be split between all contributors based on their cred score. For example, if the dollar-mana payout amount is 1000, and you had 15% of the total cred, you would receive a dollar-mana payout of 150.

If contributors decide to take the dollar payout, it will be paid to them via OpenCollective; otherwise it will be added to their Mana balance. To simplify the project’s cash management, dollar-mana will convert to mana by default after a month or so.

Boosting: Mana -> Cred

Supporters can spend mana by using it to ‘boost’ a contribution. Boost as in signal boost–a booster brings more attention and cred to a particular contribution.

When a contribution is boosted, two things happen:

  • New cred is minted, which flows to that contribution (and from there to its author, its dependencies and references, and so forth).
  • Subsequently, a new connection is made in the graph, connecting the contribution to the person that boosted it

It makes sense that boosting results in new cred minting; the booster is sending an expensive (and therefore trustworthy) signal that the contribution is valuable. It might seem more surprising that the booster gets connected to the cred graph.

Consider that the booster is actually doing a service to the project: they are investing the time and energy to discover which content/contributions are really important, and they are spending their own resource to send that signal. Since they are doing work, they deserve some cred. How much cred? That depends on whether the content they boosted was actually important.

This is why we create an edge between the boosted content and the booster. If the contribution goes on to earn more cred in the future, then the booster may make a lot of cred. Thus, boosting acts as a prediction market on the future cred of a contribution. If someone finds an important contribution that currently receives little cred, they stand to benefit by boosting it to broader attention, since as it gets re-valued upwards, the booster will gain cred (and therefore, more mana).

Supporters can also use boosting to guide the project to focus on their priorities. For example, if I want to see a feature added, I can promise to boost every PR that makes progress towards the feature. (In the future, we’ll have a way to boost bugfixes or feature requests directly.)

An early version of boosting might focus on discourse posts, essentially creating “reddit gold” for SourceCred. We could do things like pin boosted topics for the next week, and/or create a weekly curated newsletter containing all the boosted posts.

When multiple people boost content, the later boosters will get less cred from the content than the early boosters, creating an incentive to boost early. Bandwagoners get less cred for their mana.

Some open questions

What cred scores do we use for the purpose of issuing mana-dollars?

Use scores for that week

We could use the “instantaneous cred” computed each week. This is nice because it gives a very clear connection between the work someone did and the mana they earned. Short feedback cycles are nice, especially for giving humans a sense of accomplishment and agency. However, it may be too short-term biased (should we keep paying mana for old-but-valuable contributions?) and it may take time before we have an accurate assessment of the value of recent contributions. (Note that SourceCred already has an exponential time decay built in, so “cred for this week” really means “cred from mostly this week, with a smear of cred from other recent weeks”

Use scores for an older week

We could pay out for cred with a fixed time decay, e.g. this week we pay out for cred earned 2 weeks ago. This gives a bit of extra time for us to figure out what contributions are worth.

Payout towards lifetime cred

We calculate each contributor’s lifetime cred (i.e. how much cred they earned across all weeks) and their lifetime cred. Then, if their lifetime cred is higher than their lifetime payout, they earn a fraction of the difference. This had the advantage that it allows for retroactive changes in the cred of old contributions, and also adds a material time-delay factor (implicit ‘vesting’).

Notes

My inclination on this question is to use a mixture of paying based on the most recent week, and paying towards lifetime cred. This ensures that there’s always a positive feedback cycle for recent contributions, but that the long-term payout converges to long-term cred earned, smoothing over timing details. This gives us flexibility to launch large retroactive changes to the algorithm or to cred normalization.

How fast to issue Mana (/ Mana-Dollars)?

The rate at which we issue Mana-Dollars is limited by the size of the treasury, since we shouldn’t issue more Mana-Dollars than we have dollars to back it. However, we don’t have such a limitation on issuing Mana directly. However, I’d prefer to only issue Mana-Dollars (and not raw Mana), as that makes the value of an Mana more clear: every Mana in circulation represented either one dollar contributed to the project, or one dollar of potential payment that was declined.

Nonetheless, we still have flexibility in deciding how much Mana to issue. Suppose that we learn through experience that 1/k of the dollar-mana is converted to dollars, and the rest goes to mana. And we have a flow of d dollars coming in per week from donations. Then we could afford to pay up to k*d dollar-mana every week without experiencing negative cash flow. Or, SourceCred could pay less than that, and build up a treasury.

Rather than issuing a fixed amount of dollar-mana every period, I’d rather have it be based on the total cred created. That way, rather than contributors competing to split up a fixed reward every week, they are cooperating to grow it.

How much cred-per-mana when boosting?

Boosting converts mana into cred. And per discussion above, cred may generate more mana. Clearly, we are setting up a feedback cycle here. If we tune it poorly, there will be exponential runaway growth in the amount of cred and mana, and it ruin the value of the system. So we can’t set cred-per-mana too high. However, if we set cred-per-mana very low, then there won’t be much of a reason to use boosting. So we’ll need to find a good balance here.

Implementing boosting will be a fair bit of technical work, so we’ll have time to reason through this.

1 Like

Exciting to see some ideas take shape. A few thoughts:

The contributors can choose to get paid in dollars, or they can ‘re-contribute’ their earnings back to SourceCred, in which case they are acting as supporters as well as contributors, and they receive mana instead.

As a contributor, I think I’d only do this if there was a possibility to obtain returns.

Closing the loop, supporters will be able to use mana to “boost” contributions, creating new cred. This means that supporters can use their mana to guide attention within the project. Supporters can even earn cred if they are wise with their boosts.

The mechanism of using mana to guide attention/work by boosting seems like the best way for investors and contributors to communicate/transact. Part of me is wary of a single party (say a large corp) coming in and just taking over, turning contributors into de facto employees, where those not doing their bidding get their cred diluted to near zero. But I imagine competition in most bigger projects, driving diversity of ideas and spreading cred/dollars around.

Cred is not transferrable between identities, and never will be.

…However, unlike a currency or token, mana is not transferrable, and is not exchangeable for money.

I’m not sure this is enforceable. While the project is small and not much money is involved, I don’t think it’s a problem. But one only needs look at Twitter (which likewise has a ToS forbidding exchanging accounts for money), to see the enforcement problems. There’s already a burgeoning market for selling Twitter accounts, as well as sponsored tweets, many of which don’t have the required #spon tag disclosing sponsorship.

Note that you cannot convert mana back to dollars. Also, the amount of mana you earn per dollar donated might change in the future. (Also, we might make the dollar-mana ratio different than 1, e.g. 100 mana per dollar, to make the numbers feel larger.)

This is a big variable. As an “investor”, I want some assurances of the “purchasing power” of my mana in the future, no? I know there are discussions about diluting mana over time to address issues, but I imagine people putting dollars into the project will want more clarity before they invest.

Supporters can also use boosting to guide the project to focus on their priorities. For example, if I want to see a feature added, I can promise to boost every PR that makes progress towards the feature. (In the future, we’ll have a way to boost bugfixes or feature requests directly.) An early version of boosting might focus on discourse posts, essentially creating “reddit gold” for SourceCred. We could do things like pin boosted topics for the next week, and/or create a weekly curated newsletter containing all the boosted posts.

As a cautionary tale, the r/ethtrader subreddit that is experimenting with basically this (turning reddit gold/karma into a token called donuts that is currently being monetized (e.g. you can set the subreddit banner)). Fascinating ongoing experiment, but it did recently devolve into a moderator “purge”, causing a “fork” in the community, with a sizable chunk of the community moving to a new non-monetized subreddit,

Could be a good project to follow and learn from. They have product support from Reddit apparently, and are trying this for real. But also probably some good lessons to be had in governance and expectation management. People will get upset if they invest significantly in SourceCred and have it change too dramatically on them.

When multiple people boost content, the later boosters will get less cred from the content than the early boosters, creating an incentive to boost early. Bandwagoners get less cred for their mana.

Will this not inhibit the boosting of valuable contributions after the fact, once they’ve revealed themselves as valuable? I see this is an open issue in other posts, but it strikes me as a tricky problem to solve.

However, I’d prefer to only issue Mana-Dollars (and not raw Mana), as that makes the value of an Mana more clear: every Mana in circulation represented either one dollar contributed to the project, or one dollar of potential payment that was declined.

Agree. Sound mana!

Nonetheless, we still have flexibility in deciding how much Mana to issue. Suppose that we learn through experience that 1/k of the dollar-mana is converted to dollars, and the rest goes to mana. And we have a flow of d dollars coming in per week from donations. Then we could afford to pay up to k*d dollar-mana every week without experiencing negative cash flow. Or, SourceCred could pay less than that, and build up a treasury.

This is contingent on the earlier (tentative) decision to only allow contributors to convert their dollar-mana to dollars in a certain time window (e.g. 1 month following distribution), before it is converted to regular mana, which cannot be converted. Otherwise, the treasury could build up liabilities in the form of mana, possibly resulting in a “run on the bank” should contributors decide to cash out at once. It could also result in a situation where people let mana build up, leave the project, and are then offered money to boost contributions.

Rather than issuing a fixed amount of dollar-mana every period, I’d rather have it be based on the total cred created. That way, rather than contributors competing to split up a fixed reward every week, they are cooperating to grow it.

Agree with this. It’s also the general consensus I’ve picked up from earlier discussions around this.

Boosting converts mana into cred. And per discussion above, cred may generate more mana. Clearly, we are setting up a feedback cycle here. If we tune it poorly, there will be exponential runaway growth in the amount of cred and mana, and it ruin the value of the system.

I mean, if SourceCred mana mooned and I made a ton of money for my thot leadership on discourse, I’d be okay with that:) But it’s not sustainable, true, and I want that more.

So we can’t set cred-per-mana too high. However, if we set cred-per-mana very low, then there won’t be much of a reason to use boosting. So we’ll need to find a good balance here.

This strikes me as an important enough parameter that it might need to be decided eventually by governance or free market pricing.

Impressions

Seems like a smart design. It also introduces some new structures and unknowns though, which will need to be figured out. For instance how to set variables such as cred distributed per week, mana/cred ratio, etc., seems important. For now we can just play with different values, but eventually these seem important enough drivers of the system that either governance, free market pricing, or both may be needed.

Psyched to play:)

2 Likes

This is so cool

also lit af, but rather than “promising” is there a way to stake to make it real?

Could you please? I’m really really excited about SourceCred, but with everything else on my plate it’s hard to keep up. A weekly synopsis would be awesome

Some Open Questions

:100:

This is my biggest disappointment with the SourceCred project so far, I feel like all my comments/contributions are just lost in the shuffle of the endless brainstorm. It would be nice to have a clear way to represent contributions and recognize them immediately to provide a little positive boost for contributing

Too long. After 2 weeks I’ve completely forgotten about everything and am on to something else. With the pace of innovation in the blockchain space and just the overwhelming nature of life immediate feedback is more fun and rewarding because the connection between action and reward is concrete

Overall that sounds reasonable, but be aware… people hate retroactive loss. On an emotional level humans weight loss WAY more than they weight gains. Even though the system you describe here is rational, it’s not going to appeal to the subconscious biases of contributors and will discourage contributions. No one likes having things taken from them, and no one wants to contribute if they know that in the future they might have their rewards taken from them

The concept of mana vs mana-dollars is confusing. Pick one or name them something different. It needs to be easy and fun

Same. Having governance weight might also be appealing, but yeah there needs to be a selfish reason to take an action

+1 to that

Same. I’m comfortable with market prices shifting, but the idea of an algorithm or core team that manages an algorithm changing things that affect my money really pisses me off lol

  • not saying that’s super rational or idea, but it is my gut reaction and that’s important to take into consideration

I’ve been involved in this experiment on an off for the past year so hmu if you have any questions/thoughts/ideas! :slight_smile:

:100:

Yeah I agree. This mechanism seems less than ideal and could lead to cramming before a deadline or discounting valuable contributions that are placed at the wrong time. Ideally it would be fluid and ongoing vs based on rigid time cycles (for example just look at how students behave during an academic year or corporations during a quarter)

+1

Ditto!

1 Like

Have talked to @decentralion about taking this on. My plate is full for the next few days with other commitments, but it’s on my TODO list to revisit.

This is my biggest disappointment with the SourceCred project so far, I feel like all my comments/contributions are just lost in the shuffle of the endless brainstorm. It would be nice to have a clear way to represent contributions and recognize them immediately to provide a little positive boost for contributing

Feeling this as well. Having a blast brainstorming, but that’s an expensive habbit, and have to keep that in check. Looking forward to the game starting next month with the discourse plugin integrated. Even though it’s not going to be a lot of money, that feedback signal, playing for real, will be engaging and I suspect incentivizing.

1 Like

The struggle is real. A newsletter and/or synopsis type thing would really help though. What are your thoughts around that?

I’m thinking just a breezy weekly or monthly roundup of the latest developments. New features merged, decisions made, highlights (e.g. SourceCred getting mentioned on the Unconfirmed podcast), etc.

2 Likes