Grain Ledger


Grain (a project-specific token tied to cred) is a vital part of the SourceCred system. However, right now we don’t have any code-reviewed infrastructure for distributing, tracking, or displaying grain balances. Instead, grain is distributed based on non-code-reviewed Observable notebooks (see payouts), recorded in undocumented file formats via a manual process, and then displayed through notebooks.

This system is highly manual, non-robust, and not a good fit for other projects which are adopting SourceCred. We need to build proper infrastructure for distributing, tracking, and displaying Grain.

The scope of this initiative is:

  • Create a “Ledger” module which records the history of grain distributions and transfers
  • Create a “Distribution” module which, given current cred scores, can compute new grain distributions for contributors
  • Build legacy handlers to ingest our existing grain distributions into the new system
  • Create a “Display” module in the frontend which shows the grain balances
  • Incorporate this new system into the new CLIs and automation that @beanow and @anon60584824 are working on






  • We will automate grain distribution, rather than doing it by hand
  • We’ll have a dedicated UI for checking grain balances, rather than random notebooks
  • Pre-requisite to formally enabling Grain distributions will switch to opt-in
  • Pre-requisite to Grain Vesting
  • Pre-requisite for An ERC20 to track Grain
  • Will make it far easier for consumers to issue toikens based on Cred (e.g. MetaGame, Maker)

Implementation Plan

  • Write the ledger module
  • Write the distribution module
  • Write the legacy import module
  • Write the display module
  • Code review, testing
  • Integrate with SourceCred CLI and automation


  • We deprecate the Observable notebooks
  • @decentralion no longer does manual distributions
  • Users can check grain balances in teh UI
  • MetaGame can track seeds using this system



Discussed during Team Meeting Notes (3/5/2020)



This is awesome! How can people contribute to this Initiative if they feel so inspired?

Right now @ianjdarrow is working on UI mockups for the frontend, and I’m working on the backend. If a developer wants to get involved they can ping me in the #implementation channel on Discord. Folks are also welcome to offer code reviews; mention if you want to be pinged when new pulls go out for review.

1 Like