SourceCred in the TEC

SourceCred Informative Post


As a tool for communities to measure and reward value creation, SourceCred allows the TEC to gather reliable and objective contributions data from two of our main platforms, Github and Discourse.

The main mechanics of SourceCred work as explained next:

“SourceCred has two components Cred and Grain. Cred builds up when you do things for the community, and basically the more Cred you have, the wider the mouth of your bucket is. Cred is not considered an Asset, and all users automatically receive Cred. Grain on the other hand can be considered an Asset, and users need to opt in to receive Grain. Grain does not need to be used in a community if the community merely wants to keep track of who contributed what. Grain can be used to distribute funds within the community. Grain can be thought of as rain, and the wider your bucket is (due to you having more Cred), the more grain you can catch.” - @rogervs at github

With SourceCred we want to start experimenting and add another layer to our current rewards system where we can measure real work from contributors in an automated way - this won’t replace praise, it will support it.

So, one of the main decisions for our community to make is what actions and interactions provide more Cred to the collaborator, these are defined in the weight configuration here:

If you take a look on the weight configuration inside the explorer you’ll see a couple of symbols, alpha (α) and beta (β). Alpha is the user or action (linked to an user) that will get the most amount configured in the distribution interacting in a specific way with Beta, where Beta could also be another user or action. These in general are nodes that will carry the weight of the cred.

There’s a range between 0x to 32x to select the multiplied amount of Cred that should “flow” for an action. This number in particular is where we need to find consensus, so if you believe that something should get zero recognition for doing something, the value should be 0x, on the other hand if you believe that a certain action is really important and should be fully recognized it’s fine to consider assigning 4x to it - But hey you may ask, why 4x and not 32x? We probably want to keep the graph balanced, in other words, we may want to keep the flow of value very well distributed, 32x would rest importance to other actions, maybe we want that or maybe we’d like to keep our contributions to be equally recognized, this is our decision to make.

In the first stages we would like to focus more on the node/action weights than the edges/interactions weights, so don’t put much thought into what’s going on with the alphas and betas and let’s find balance and get the right quantification from our graph with the value of our actions. There’s still many things to learn and not everything needs to be understood with 100% clarity, for now let’s experiment and find out what should generate more recognition and value inside our community by trying it out live!

Let’s summarize the actions and interactions that are more important right now according to our collective hack sessions:


Main Actions

  • Make an Issue
  • Make a comment


In this case “something” can be an issue or a comment

  • Something is being authored
  • Something is being merged
  • Something is being referenced


Main Actions

  • Make a topic
  • Make a post
  • Give a like


  • You get a reply to your post
  • You make a reply
  • Someone makes something with your topic
  • You make a topic
  • Your topic is contained in a post
  • Your topic is referenced
  • Your post is liked
  • Your post is referenced
  • You are being mentioned

Every update of the instance and grain distribution occurs manually and cred data is added every week automatically, following the current parameters regarding budget allocation and total grain to distribute. We can set how the current budget will be distributed between newcomers and old contributors setting a difference between immediate and previous cred generated, this allows for everybody to keep getting some recognition even though they are not very active at the moment, we can decide what percentage for this works the best. We are proposing that this and other decisions will be mostly done through a committee to ensure safety and agility to this process. See the proposal here.