Proposal for implementing an open, transparent Contribution Graph reward mechanism for DAO + Contributors

I’ve been researching and deep diving into some aspects of DAO governance along with how communities gain more value creation from its members. I would like to begin a conversation/proposal about how the ENS community and DAO can benefit from such a solution. Any and all feedback welcome.

In the spirit of transparency, I’ve begun contributing to a project called SourceCred. I see it as a solution to helping build strong community and contributions to projects I am involved with and future ones I aim to start. My proposal here is simply to bring awareness to solutions out there, that might be used in conjunction with ENS community and project needs. SourceCred seems to solve this problem in a pretty neat way. Maybe there are other solutions too, but I’ve been impressed so far with the SourceCred vision and community, along with what’s built so far related to contribution tracking. The software is open source. MakerDAO is currently using SourceCred. SourceCred is also sponsored officially by Protocol Labs. They are involved in the Token Engineering Commons along with some work with GitCoin. So I think their values and track record in the space will also be aligned with the community spirit behind ENS.

What Problem Does this Solve?

From their site, “SourceCred (in the most basic sense) is a technology that makes the labor of individuals more visible and rewardable as they work together in a project or community.”

At the bottom of this proposal there are links to DYOR. I’ll give a high overview into how I understand something like a reward measurement mechanism could be integrated with the ENS community. Basically it creates a Contribution Graph like so:


The SourceCred instance (which can be run in Docker), monitors 3 different sources of contributions commonly made to community projects. So far they have built 3 plugins: Discourse, Discord, and GitHub.

In respects to Discourse, let’s say the SourceCred instance is monitoring posts on a certain forum. It can be configured to distribute CRED based on weighted parameters that are customizable. There’s some “anti-gaming” aspects built in. For instance, creating a post might not result in CRED, only when certain role levels like or reply to the post. CRED is simply a score of contributions, that are calculated and posted transparently using GitHub Pages. CRED is not a token, but can be “swapped” for a GRAIN token if the community chooses to set that up. GRAIN is ERC20 and does have value. The value of GRAIN is chosen by the community and can be pegged to whatever the community decides, $ENS, $ETH, $RESP. Also keep in mind, CRED can just be used without the ability to exchange for GRAIN. Issuing tokens of value does require extra legal and tax stuff I suppose. So there are options to use CRED without those extra hurdles. It could be used solely to test and gauge contributions from the community, DAO, or both.

Another use case is ability to gain CRED by Discord interactions for approved users(filtered by requiring certain role(s) to participate). The SourceCred instance will monitor channels, that can have different weights to them. CRED scores can be measured by outcomes like reactions to posts, mentions, threads, etc. There can also be more weight tied to reactions from Discord users with certain roles attached to their profile. So if a mod for example reacted to a post, that would result in more CRED being calculated for that contributor. I see also a use case for earning CRED by having contributors(approved role) help take care of the support ticketing system.

To note, CRED isn’t transferable, it’s not a token, it can’t be manually changed for a user, only calculated based on weighting structures set in the instance parameters. The weighting of the parameters can be tweaked according to specific needs of the community. So for instance maybe a certain channel is important for DAO members to be active in, review, participate in. This channel might have more weight than a general discussion channel for for example.

What’s Happening Now a CRED-type system can solve?

I think I can safely say most of us here got involved with ENS from a gut instinct because we saw the long term future and use cases with ENS. We never anticipated rewards, or an airdrop. We believe in ENS, we love ENS. So we contribute, we get involved. Regardless of any reward system, I personally will still be involved with ENS. I see the utility of ENS being foundational to the fabric of the web3 space and here for the long term. However, I think having an open and transparent reward mechanism is a way to take ENS to some whole other level as far as a nurturing a community working together in unity, efficiency, with common goals, yet in a decentralized fashion. Here’s some things a trackable, open, and transparent reward system could solve:

  • Facilitate more involvement in what is happening with Discord. Lot’s of needs there from new users asking questions, to participating in the DAO work group channels, etc.
  • Interaction and participation in Discourse discussions.
  • Collaborative efforts on document creation, help guides, videos etc. Every valid contribution “down the stream” would have CRED flow to its user.
  • Bug bounty/GitHub monitoring for contributions.
  • “Sub DAOs” for the ENS DAO Working Groups could use this system. Could even use a separate instance of SourceCred just for specific Work Groups. “Sub DAOs” mentioned in the post ENS DAO Working Groups by @Alisha.eth

In the realm of DAOs, there are a lot of neat things happening. I saw SourceCred’s project and immediately could see how something like it would be used to help within the ENS community along with my own projects. I was inspired today by a new tentative $RESP merchant token project @brantlymillegan shared in a Twitter Spaces. Imagine if CRED could be traded for $RESP tokens. This would keep out the whales, and allow for the little fish like myself to participate and be rewarded. I believe striving to think about everyone, ie. the public, as well as the future has always been the thoughts and goals of ENS. This evidenced by one of the most brilliant token airdrop ever, along with the creation of the ENS DAO for the next 1000 years+. :slight_smile: Thanks for reading! Ideas? Feedback?

:building_construction: A Few Related Use Case Links Involving ENS:

:microscope: Some Links for Research:


@zadok7 I am so glad to see your post!

I have been looking into SourceCred and similar tools over the past few weeks as a solution for both Discord and Discourse, to acknowledge and reward contributors and participants in the community.

If the working group proposal is passed in the next week or two, I imagine this proposal would fall under the purview of the Meta-Governance Working Group.

I’m looking forward to progress on this proposal. Please don’t hesitate to tag me in Discord if you would like to discuss this further.


SourceCred looks very interesting.


Hi, thanks for introducing your solution. I have actually set up SourceCred on ENS as a trial a while back and also helped set it up into another project (but they ended up discontinuing using SourceCred) so I think I have some hands-on experience using the software.

One of the issues I encountered while maintaining the service was the lack of an easy way to associate Ethereum Address (or ENS name) into Discord/discourse id(afaik, the current workaround is you have to manually add mapping JSON file between Ethereum address and SourceCred id). We could potentially work around by mandating everyone on ENS discord/discourse to associate their username with .eth name, but it would be really cool if SourceCred integrate with ENS and treat it as first-class citizens. That would probably make token distributions via SourceCred a lot easier not only for ENS DAO but for any other DAOs/projects that integrate with SourceCred


I agree 100%. I am encouraging integration with ENS and see it as a great fit for SC. They also own sourcecred.eth, so in future would love to see them using L2s in their architecture.

As far as requiring .eth holders to associate their eth names with Discord and Discourse, I think this is a good idea either way. I know with discord we have the “dot-eth-holder” role. This can be used to “gate” channels/categories that contribution credit is tracked in.

I think for rewards, there should also be an “opted in” role assigned. For instance, some may want to contribute, but are not opting in for contribution tracking. Therefore any scoring of their interactions won’t go into the overall graph.

A second case is where a participant may want to be included in contribution tracking, and earn a history but not want to swap their accumulated contribution points for something of value like a $RESP token(or whatever token is chosen). We’d need a role for this too.

Finally, I don’t even think it’s too much to ask for those contributors who will/want to participate in contribution rewards to not only hold a .ETH name, but also to have their Primary set. I think this helps with a little accountability to the project. It’s not 100% anti-gaming effective, but we can layer these strategies to reduce the occurrence of gaming as much as we can while increasing community participation and work throughput.

Thanks for sharing back! Loved the feedback.


So glad that I read this post. I was looking for a tool functioning this way, Looking forward to seeing how your work and this discussion unfolds.


Hiya @cemgundogan, in your research if you come across other tools, would definitely like to learn. SC is just the first I’m trying (for my own personal projects). Very new to using these kinds of tools, but it’s awesome many thinking along these lines. Decentralized work/collaboration is like this whole emerging field. It’s fascinating. Thanks for sharing.

1 Like