A Living History of SourceCred

What follows is a history of SourceCred (so far).

This post is a wiki, and is intended to act as a living document. Everyone is invited to add more information to the history. Discourse is not paper, so we don’t have to worry about running out of space. Feel free to add yourself and others to the history!

Prelude (2015-2018)

  • For many years, @decentralion had been thinking about using PageRank reputation networks to improve legibility and trust in the context of society.
  • Also for many years, @jbenet had been thinking about the “Credit Attribution Problem”, and how if we can measure what really matters, it provides enormous leverage on basically all other problems.

Jan 2018: Founding of SourceCred

  • The idea for SourceCred originated in a conversation between @decentralion and @jbenet in January 2018. Their discussion focused on how cryptocurrency projects could distribute cryptoassets directly to their contributors, while creating robust incentives.
  • Zooming out, they saw the potential for creating PageRank-based reputation networks within open-source projects as a way to distribute tokens within open-source projects.
  • @decentralion quickly committed to developing the idea. They considered launching it within Google, where they worked at the time (some Google executives were quite interested). However, Dandelion felt launching it within Google would create long-run conflicts of interest. After discussions with @jbenet, who is the CEO / Founder of Protocol Labs (@protocol), Dandelion decided to join Protocol Labs, and build SourceCred with sponsorship from PL.

Feb 2018 - Nov 2018: SourceCred Prototype

  • Shortly after starting SourceCred, Dandelion recruited @wchargin for a ~6 month push to build the basic SourceCred infrastructure and prototype.
  • By November 2018 (when William left to accept a deferred Google offer), they had a working prototype which produced cred scores on arbitrary GitHub projects
  • However, it was not clear how SourceCred would actually get traction or real adoption.

Dec 2018 - Sep 2019: Exploratory Wanderings

  • When @wchargin left SourceCred, development velocity slowed dramatically. It took some time for @decentralion to re-adjust to being a solo dev, not having code reviews, etc.
  • @decentralion spent a lot of time thinking about how to find product-market fit or initial traction. The SourceCred prototype’s scores were “cool, but not actionable”.
  • Around this time, @mzargham became involved in SourceCred, initially via a 2-month consulting contract arranged by Protocol Labs.
  • @mzargham organized the SourceCred team’s trip to the Odyssey hackathon.
  • Based on discussions with @mzargham, @decentralion re-wrote the core Cred algorithm so that it produced scores over time (e.g. weekly cred), not just scores-for-all-time. This made it possible to start paying people based on Cred.
  • Around this period, a number of new faces joined the community, including @s_ben, @beanow, and @burrrata

Sep 2019 - (?): The CredSperiment

  • With time-based cred, and encouragement from Ian Darrow, @decentralion decided to launch the CredSperiment, an experiment in directly paying SourceCred contributors based on their cred
  • This marked a change in focus from SourceCred as an algorithm built by a community to a community that builds and uses an algorithm. As a result, community engagement dramatically increased.
  • Mechanically, the CredSperiment works by issuing “Grain” (a digital currency representing participation in SourceCred) directly to contributors. Protocol Labs then buys the grain from contributors who want cash instead.
  • It’s early to say what the full consequences will be, but Dandelion believes it represents a big turning point in the history of SourceCred.
  • @beanow introduced the highly influential concept of Champions, and stepped up as the first explicit champion

Worth mentioning 2/3 Bday

Is there a model of this somewhere @mzargham ? Trying to wrap my head around how to use SourceCred with different minting models, e.g. currently we seem to have “bond(labor)-to-mint” grain (gets distribtued along CredGraph; cred directly being a representation of value created) and buy grain (from grain holders, who are initially the builders & creators), no bonding curve, seems reasonable as also atm only buyer is ProtocoLabs, sponsoring. When scaling that part could become “sponsored burn” etc. But I’m more interested in the variant where we have some bootstrapping (earning creds, creating value); a fundraise (via augmented bonding curve, i.e. reserve + funding pool) that let’s others buy-in after seeing the initial potential - this is “bond(DAI or Dollar)-to-mint”; and once the value creation returns revenues through use value (actual sales :slight_smile: those are automatically bonded-to-mint - then either redistribute to cred holders, or use sponsored burn.

The application is the crowdsourced/crowdfunded TE book (where the “crowd” is initially a handful, but this has potential to scale - so great for testing/trying out, i.e. modeling, different alternatives) , would love to have some pointers here: https://github.com/Freeelio/TE-Book/tree/master/models/cadCAD-models thanks in advance for any pointers @s_ben @decentralion

1 Like

Here’s the flows as I think of them:

  • REDEEM: Exchange 1 Grain for 1 DAI (currently backfilled by PL, future smart contract)
  • MINT: Exchange 1 DAI for 1 Grain (Not yet implemented, future smart contract)
  • DISTRIBUTE: New Grain is created and distributed based on Cred
  • BOOST: Grain is burned to create new Cred in the Graph (and a new edge from the boosted node to the booster)

When we implement REDEEM and MINT on a smart contract, there may be some seignorage (e.g. MINT at a price of 1.1, REDEEM at a price of 0.9).

If you want to have a floating price instead of a peg, you can of course use whatever bonding curve you like.

In practice, BOOST and DISTRIBUTE will happen off chain, and REDEEM and MINT will happen on chain, so there will also be WITHDRAW and DEPOSIT operations for converting between on and off chain Grain.