The Social Norms of Flowing Cred Questions (please answer!):sourcecred:


Hey folx! This list of questions and your answers are eventually going to become a resource document for people joining SourceCred (and a resource for those of us who still have questions, aka, me). If you could a) answer any questions you feel comfortable with using basic, layman’s terms and b) include any questions or information you think ought to be included, that would be super helpful.

General Questions

  1. When you flow cred, what does that mean? Where does it come from and where does it go?
  2. If I flow a lot of Cred to others, does that get rid of all of my Cred?
  3. What’s the difference between flowing and minting Cred?
  4. Which platforms flow Cred right now? Which ones don’t?

Emoji Questions

  1. How does using a :sourcecred: emoji work functionally on Discord? What does it do with Cred when you use that emoji?
  2. What are the social norms around :sourcecred: emoji use on Discord? When is it appropriate and when is it not?
  3. Which emojis flow cred? How much does cred does each emoji flow?
  4. How much Cred does a SourceCred emoji flow?
  5. Is the Discord Plugin online? Are the :sourcecred: emojis being used to actually flow Cred yet? (Is that what the Discord Plugin does? or is it something else?)

Props/DidaThing Questions

  1. How do the “props” and “didathing” channels move Cred around?
  2. When should you use the “props” or “didathing” channels? When should you not?
  3. How much Cred do you flow in “didathing” and “props”?
  4. Does recognizing someone else’s contributions by posting in “props” flow Cred to me at all?
  5. Will someone still get Cred in “props” or “didathing” if noone reacted with a SourceCred emoji?
  6. What happens if I react to my own post or a post I was tagged in with a SourceCred emoji?
  7. What if I contribute with someone? Should I post in both “props” and “didathing?”
  8. Are the “props” and “didathing” channels permanent? or a temporary bandaid to make up for gaps in the graph?
  9. Are different amounts of Cred flowed in “props” than “didathing?”
  10. Are “props” and “didathing” only for platforms that aren’t running with the SourceCred Cred algorithm yet?
  11. What if I don’t know if my work is already receiving Cred, should I post in “didathing” just in case? Or will that look like gaming?
  12. I’ve been told that I will receive a small portion of Cred for what’s posted in “props” and “didathing” now, and receive the rest retroactively when the plug-ins are set up for those channels. Isn’t that affecting how much Grain I can take out right now?

Your feedback:

  1. What other questions or information do you think would be helpful to include?
  2. Do you have any other feedback on this list?

Getting started on this by replying to the first set of questions… will return later.

To explain this well, we should distinguish between Minting and Flowing Cred.

To begin with, imagine we have a Contribution Graph (i.e. a network of connected contributions, which Cred can flow over). However, no Cred has been Minted, so there is no Cred in existence. The Contribution Graph is empty.

Now, the community decides to Mint some Cred, e.g. because they found something valuable. This Cred just magically appears out of nowhere and begins flowing along the Graph. We can think of there as being a “Seed Node” or ultimate “source of Cred” where the Cred magically appears, and then begins flowing out from that to connected nodes in the graph.

Here are some examples of when Cred gets minted in our instance:

  • when someone gives a :heart: in Discourse
  • when someone gives a :sourcecred: or :100: or :+1: emoji on Discord
  • when someone opens a pull request on GitHub
  • when we create a new Initiative

As a specific example: right now, we mint 16 Cred for every Discourse :heart:. So if you like this post, then the Seed Node will magically create 16 more Cred, which will then flow from the Seed Node to this post. And from this post, it will connect to things its connected to, like:

  • @decentralion (me) for being the author
  • @Bex’s original post, because this post replies to that post
  • @Bex, because she is the author of the first post
  • any post that @decentralion or @Bex liked, since we are connected to those posts

Every time that Cred reaches a new node, most of it flows onward to neighboring nodes, but some of it “radiates away” and goes back to the Seed Node. This is vital, because otherwise the Graph would be out of balance–there would be more Cred coming from the Seed Node than was going back in. The key property to know about Cred is that all the flows are always in balance, so the amount of Cred going into a node is equal to the amount of Cred leaving it.

Nope! As I mentioned above, all the Cred flows are always in balance–so the amount of Cred you flow away is always equal to the amount of Cred you receive.

However, it is still possible to be “selfish” with your Cred flows. As an extreme example, someone could decide only to react or engage with their own posts, to make sure that all of their Cred flows would flow back to their own work, from which it would then flow back to them. You can think of this as making a “Cred Trap” – a little subsection of the Graph where Cred mostly stays put without flowing out to other people or the rest of the Graph. We’ll be building tools so it’s easy to spot when people do this.

As above: Minting creates new Cred (at the Seed Node) which then flows to the “minted” contributions, and starts to cycle through the Graph. Minting increases the total amount of Cred. Minting is exceptional. Right now we Mint in response to raw activity (e.g. reactions and so forth), over time we may move Minting more and more to happen in response to Boosting or explicit community governance.

We flow Cred on Discourse, GitHub, and Discord. Also, via the Initiatives system, but that’s not a platform.

At a conceputal level, using the :sourcecred: emoji results in two things:

  • Minting new cred, which flows to the message receiving the reaction
  • Flow cred from the reactor (e.g. you) to the message receiving the reaction.

To get a bit more technical, using the reaction:

  1. Creates a new reaction node in the graph, which mints Cred
  2. Creates an edge pointing from the reaction node to the message receiving the reaction
  3. Creates an edge from the person reacting, to the reaction node

We haven’t discussed this much yet. Heuristically, I a :sourcecred: emoji when I see something that seems particularly valuable / useful (e.g. a cool #didathing, or a really insightful post/comment) and I use the :100: or :+1: emojis for smaller-but-still-valuable things.

It’s hard to say how much each one will flow, because that depends on the cred of the person using the emoji. But at present the amount each one mints is fixed:

  • 16 per :sourcecred:
  • 8 per :100:
  • 4 per :+1:

We might change this later (and those changes would apply retroactively). SourceCred is still in beta. :woman_shrugging:

Yep, this is all live.

Currently, they are just like any other channel. In the future, we want to make special rules for the #props channel so that they have different edge weights. In particular;

  • we want messages in #props to flow cred mostly to the people getting mentioned in the message, and not to the author of the message
  • we want messages in #didathing to evenly split cred between the author of the message, and people mentioned in the message
  • we might also want to change the amount of Cred minting in these channels (e.g. mint twice as much in #props as we would in a regular reaction)

I don’t have any rules for this. Maybe we can have a discussion about this on one of our calls sometime.

Currently, it’s the same as for emojis anywhere else (see above).

Currently, no. We might change this in the future.

See above.

Personally, I think it’s fine to use them even to re-link to work that was done elsewhere… esp. if it helps show the value of a group of related contributions. E.g. I could post in #didathing “shipped a new version of the UI! (link to demo)” even if all the individual work units were on GitHub, because I’m bringing the community’s attention to the combined result.

Personally, I think it’s fine to err on the side of using #didathing more often.

Yeah, your Grain balance today is influenced by your Cred today, so having less Cred does reduce the amount of Grain that’s available to you. However, if your Cred goes up in the future, the Grain distribution algorithm will “catch you up” to your new Cred level, so you’ll be made whole eventually.

Overall, my new Cred explorer UI will make it a lot easier to get a sense for these mechanisms, b.c. anyone will be able to explore the data.

Thanks for the thoughtful questions! Just a couple thoughts:

Answering the descriptive, not the normative: I use #didathing when either (a) I’ve made a meaningful contribution that doesn’t fit into the graph anywhere else, or (b) I want to signal-boost something that I’ve done because I think that others may find it interesting or valuable.

An example of (a) is, “I spent some time trying out something that would have been great if it worked out, but wasn’t able to get it to work out (and it’s small enough that I don’t feel like writing something careful on Discourse)”.

An example of (b) is, “I documented some investigation in a comment in a repository not under our organization (e.g., vsoch/sourcecred), so you might not have been notified, but devs might like to read it”.

Again, this is just what I do; interested to hear from others, too.

My two cents: go for it. Sharing your work is itself helpful to the community. It gives people insight into what you’re working on and what you consider valuable or enjoyable. It gives people a chance to learn about a part of the project that they didn’t know existed. It helps us improve our bus factor.

As to perception of gaming, I wouldn’t worry too much, for three reasons. First, our community operates at a high trust level, so a priori I assume that people are acting in good faith. Second, this particular form of gaming isn’t trivially effective. Posting in #didathing just enables other people to use :sourcecred: to mint and flow cred to you. The extra step, involving human choice, acts as a check, a form of multi-party approval. (I probably would advise against :sourcecred:-reacting to your own #didathing message, though. :slight_smile: ) And third, I think it’s intrinsically important to the SourceCred project that members of the SourceCred community follow what feels natural to them. We’re dogfooding SourceCred on SourceCred so that we can get a sense of how real people interact and behave when SourceCred is live. Having a diverse set of practices from a diverse set of people helps us underestand that better.

(We have a related thread about “When to :heart: something”, and I wrote something similar there.)

@decentralion this was illuminating for me. Conceptually, I vaguely understood this was the case, but wasn’t sure. Now I’m not sure how much Cred is flowing to all the posts you and @Bex liked, but perhaps that’s out of scope here?

Interesting. Was not (or only vaguely) aware of this property. I’m reminded of @miyazono’s description of Cred flows in An Intro to Cred and Grain:

As a metaphor, we can visualize cred flowing through the graph as water flowing through a watershed ecosystem of creeks, springs, and ponds:

  • Water bubbles up at certain locations where there are springs feeding ponds. These correspond to actions that mint cred.
  • Water flows through streams connecting ponds. The flow to downstream nodes is proportional to the strength of the connection.
  • Additionally, water from all of these ponds seeps into the ground, replenishing the springs and providing a closed loop.
  • Finally, the equilibrium water level in each pond is proportional to the relative importance of that node.

The contribution graph tells us the size of various creek beds, but we want to know the distribution of destinations for the water that leaves each pond. We can equate the paths a different water droplet can take to the transition probabilities in a Markov chain. With these numbers, we can calculate the equilibrium distribution of water, called the stationary distribution on a Markov chain.

The water metaphor I think is a nice way to visualize this, and wonder if we could literally visualize this as water flows? Perhaps as part of the virtual map @LB is working on?

Struggling to square this with what we said in the announcement on the Discord plugin @LB posted:

  • Using the cred-flowing emojis will mainly mint new cred, but also flows a little bit from your own personal pot of cred.

The way I was interpreting this (correct me if I’m wrong), is that if I :sourcecred: a Discord post, my overall Cred score goes down, if only by a little bit. Which makes me more conservative with my reactions. Which isn’t bad (it could be good to introduce more skin-in-the-game), but if I don’t understand how much I’m giving away, as a user I might be too conservative.

One of the features I’m planning for the new UI is to not just show cred inflows (where did this node get cred from?) but also cred outflows (where did this node send cred to?). Should make it easier to explore the answer to that question.

Yeah, we should probably tweak the wording there. In general, it’s not the case that creating a new reaction (or new outbound edge in general) will reduce your Cred, since Cred isn’t a fixed quantity that you “spend” or “keep”. All your Cred is always flowing away from you all the time, you just get to choose where it flows to.

To consider an example, suppose that I have 100 Cred, and I have one outbound edge (I liked a post by @Bex, for example). Now I create one more outbound edge (say that I like a post by you, @s_ben). I still have 100 Cred, but now instead of flowing all of it away to @bex’s post, now I’m flowing 50 to @Bex’s post and 50 to your post. I haven’t lost any Cred, I’ve just changed how it’s flowing.

However, there is a situation where liking could reduce my Cred. Suppose that I have 100 Cred, and I have one like to a post by @Bex, and that post was a reply to my post. So of that 100 Cred, say 20 of it is actually flowing back to me via the chain of Me -> Bex's Post -> My Post That Bex Replied To -> Me. Now when I like your post, some of that cred that was flowing from me back to me is instead flowing to you. So in that case, my cred might go down, say to 90 cred.

For a particular case study, we can look at parafia capital in the MakerDAO Discourse. They wrote one topic that got a lot of :hearts: but otherwise have little engagement, and have never :heart:'d anything themselves. So the result is that their Cred “has no-where to go” and piles up on their node, giving them an abnormally high Cred score. If they were to :heart: anything at all, their Cred would drop a lot.

To use the water metaphor from @miyazono’s post, it’s like we have a basin with a small trickle of water in, but it’s really well dammed and the water can’t get out anywhere. So the result is a surprisingly big lake.

As part of CredRank we’re going to tweak the rules here a bit, to make it harder to create “cred traps” like this. In general, I don’t want it to be the case that reacting to stuff causes people to lose Cred. And like I said, right now that happens in edge cases… if you are someone who has been behaving “normally” and liking a fair amount of stuff that isn’t your own content, then adding more likes won’t cause you to lose Cred.

That’s really interesting. And not necessarily bad. If I’m circularly sending Cred back to myself, that could be a sign of a) intentional gameing, or b) I’m just being self absorbed? Don’t want to make judgements like that without knowing the dynamics better, but it seems incentivizing :heart:'ing “away” and “across” the graph to other contributors is likely to lead to better scores.

What if there’s a default edge out, so if you don’t like anything, it doesn’t build up? Maybe to a communal node that evenly connects to every other node? Just spitballing. Sounds like you probably have better ideas in CredRank anyway.

Yeah, it’s a bit more nuanced in CredRank because there are “epoch nodes” that act as an intermediary layer between the users and their contributions, and that’s how we account for time in CredRank (rather than running PageRank once for every week like we do now). But that only changes how things work for users, whereas we have “cred sink” problems with other nodes, like Discourse topics, as well.

So one idea I’ve been thinking of is basically to give each node an extra edge with weight w pointing to the seed node, so that if a node doesn’t have much outbound connection it’ll flow the extra cred away to the seed, but as it gets more outbound weight the seed node asymptotically only receives alpha (i.e. the “extra” edge becomes insignificant when a node has lots of outbound edges). Though I’m not sure how to pick w in a principled way. Also, I kind of want to change how edge weights work in general, c.f. this post.

It seems @decentralion and @wchargin have done a good job answering the functional questions of how Cred flows. A few personal opinions on norms:

I think this is still being figured out. There are a lot of diverse perspectives that I see expressed (in words and actions). Some are more hesitant to post and :sourcecred: . Some (like myself) do it very liberally (perhaps too much so?). There could also be some variance just due to personality types. E.g. someone may be generally uncomfortable “tooting their own horn”, or just be shy. Here is where the idea of "Cred Historians" and Curators will become important IMO. Some people’s personalities are such that they like curating, cataloging, debating politics around what gets Cred. If financially rewarded for that, they could help balance needs, personalities.

Find myself agreeing with @decentralion and @wchargin generally here, in that you should err on the side of just posting. Personally, I’d like us to get even more granular with our posting. In order to create more richness in the graph, but also to help people feel more seen generally. I know when I’m working alone at my computer, sometimes all day without talking to anyone, it feels really demoralizing that I’m the only one that cares about why this task I just spent half an hour on is important. That may fight against people’s existing workplace norms, and fears of rejection (why didn’t I get a :heart: for that?! Do you hate me?!). But I think if we can get a nice, high’ish frequency flow of #didathings, similar to a social media feed, it could be a really powerful way to signal to others in the community, and help us reach consensus on larger issues as well.

I mean…kind of embarrassing if one day we ran a script to see who was liking themselves the most :roll_eyes:

I say err on posting just in case. I don’t imagine so much Cred flowing through these channels that accidentally “double dipping” will substantially sway your Cred score. Or at least it shouldn’t as long as #didathing and #props are weighted sensibly to Initiatives and Boosting.

This list is really comprehensive and has generated some great, needed conversation. My one comment would be that because the list was so long, and touched on so many deep topics, I felt a little overwhelmed and avoiding posting for a bit. More “bite-sized” “surveys” might be useful next time?

1 Like

+1 on the length being a bit overwhelming. It also felt like a number of the questions overlapped; it feels like a smaller number of questions could have covered the same topics.

1 Like


I’d be happy to contribute in some way. It can indeed be powerful and easier to understand

I have not deep dive yet, although the cred/grain calculation paper is on my list. So answers are from a surface point of view (and probably wrong) :stuck_out_tongue:

General Question :

  1. It means that you have made a contribution that has been used/valued by the algorithm. The Creds are coming from the contribution map that is actualized and computed at every epoch.
  2. flowing is organic and refers to the computation done at every epoch. Minting is a forced action to set some cred to specific thing (initiatives)

Emoji questions

  1. the :sourcecred: emoji creats cred that will be linked to the author’s post
  2. the :sourcecred: is used to give “a human’s feel/vibe” of the community’s belonging related to your contribution. And this contribution is pushing a step further sourcred on its journey

Props/DidaThing Questions

  1. “props” is more outspoken than just the emoji. It actually states how great the interaction. It does not move Cred around. “didathing” is here to capture contributions especially those that have been flying under the radar of the algorithm
  2. besides the emoji that will mint&flow cred, the amount needs to be set manually

Your feedback the fast&slow component part of cred could be interesting to detail