Cosmos Community-Spend Best Practices

Drafting and submitting a community-spend governance proposal is a process that takes time, attention, and involves risk. However, proposals also have the potential to enact funding for important Cosmos Hub work. Version 1.0 of the ‘Community Spend Best Practices’ documentation is intended to make community-spend proposals easier to create and more likely to be fully assessed.

Community Spend Best Practices Version 1.0

On February 26, I published the first version (v1.0) of the best practices document for drafting & evaluating community spend governance proposals. Its purpose is to build capacity–to guide and enable someone to finalize and submit a community-spend proposal on-chain. This doc can also help someone to assess a proposal, though I think that it should be streamlined to make it easier to use to assess community-spend proposals.

The objective of this documentation is to make the proposal process easier by preparing participants for what to pay attention to and how to reduce the risk of losing deposits. Ideally, a proposal should only fail to pass because the voters 1) are aware and engaged and 2) are able to make an informed decision to vote down the proposal.

More About This Work

This document should satisfy the deliverable outlined in the Cosmos Hub community-spend proposal ‘Prop23’, and its contents belong to the Cosmos community and to anyone that would like to participate in the Cosmos Hub.

However, I’m looking for feedback on this documentation to improve upon it. Whether you’re educating yourself, working in the Cosmos ecosystem (beyond the Cosmos Hub), and especially if you’re preparing to launch a community-spend proposal, please consider joining the Cosmos Governance Working Group channels (forum, Telegram) to discuss your proposal and/or this doc. Working together can help improve the documentation and your proposal. You can also provide direct feedback here on Github or here on the forum.

For those considering making a community-spend proposal

You should know at least six things before launching your community-spend proposal:

  1. About the Community Pool
  2. How the voting process and governance mechanism works
  3. What the community will likely want to know from your proposal
  4. Where and how to engage with the Cosmos community about your proposal
  5. How to prepare your final proposal draft for submission
  6. How to submit your proposal to the Cosmos Hub testnet & mainnet

Want to learn about the Community Pool?

The Cosmos Hub 3 launched with community-spend capabilities on December 11, 2019, effectively unlocking the potential for token-holders to vote to approve spending from the Community Pool. Popular Cosmos explorers such as Big Dipper and Hubble display the ongoing Community Pool balance.

Two percent of all staking rewards generated (via block rewards & transaction fees) are continually transferred to the Community Pool. Though the funding is currently fixed at 2% of staking rewards, the funding rate may be modified with a parameter-change governance proposal.

Funds from the Cosmos Community Pool may be spent via successful governance proposal. If a community-spend proposal passes successfully, the number of ATOM encoded in the proposal will be transferred from the community pool to the address encoded in the proposal, and this will happen immediately after the voting period ends. 

Currently, funds cannot be sent to the Community Pool, but we should expect this to change with the next upgrade. You can read more about the Community Pool here.

The Voting Process & Governance Mechanism in a Nutshell

A successful proposal has two periods: the deposit period, which can last up to 14 days, and the voting period, which lasts exactly 14 days. During the deposit period, contributors deposit amounts that are put at risk as a bond, which may be burned. You’ll need to raise 512 ATOMs for your proposal to enter the voting period, and you can read more about the conditions of this bond here.

During the voting period, participants may select a vote of either ‘yes’, ‘no’, ‘abstain’, or ‘no-with-veto’. Voters may change their vote at any time before the voting period ends. You can read more about the voting period and how a proposal passes/fails here.

Currently, the criteria for submitting and passing/failing a community-spend proposal is the same as the criteria for signalling (text-based) proposals and parameter-change proposals. You can read about how votes are tallied here.

Best Practices for Drafting a Community-Spend Proposal

What are the elements of a community-spend proposal?

It will be important to balance two things: being detailed and being concise. You’ll want to be concise so that people can assess your proposal quickly. You’ll want to be detailed so that people will have a clear understanding of what the agreement is and won’t need to ask many questions before voting. These are some elements that the Cosmos Hub community may be likely to be looking for:

  1. Summary – the key details of the proposal
  2. Applicant(s) – the profile of the person(s)/entity making the proposal
  3. Problem – generally what you’re solving and/or opportunity you’re addressing
  4. Solution – generally how you’re proposing to deliver the solution
  5. Funding – amount and denomination proposed eg. 5000 ATOM
  6. Deliverables and timeline – the specifics of what you’re delivering and how, and what to expect
  7. Relationships and disclosures

You can read more about the elements and best practices here.

Engagement is Critical

Engage directly with the voting community and seek feedback, because engagement is likely to be critical to the success of a proposal. There are many different ways to engage, and you can read more about these here.

How can/should you submit a community-spend proposal?

If you have a final draft of your proposal ready to submit, consider posting it on the testnet first. I intend to expand this guide to include testnet instructions. These are the three primary steps to getting your community-spend proposal live on-chain:

  1. Hosting the final draft of your community-spend proposal with IPFS (InterPlanetary File System)
  2. Formatting the governance proposal that will be on-chain
  3. Sending the transaction that submits your governance proposal on-chain

I’ve included step-by-step instructions, simple examples, and real examples here.

Next Steps

Here’s how I think this documentation could be improved upon:

  • improvements based upon feedback from users and experts
  • a section to guide launching testnet proposals
  • a streamlined version dedicated to assessing proposals

I’d also like to see this work combined with other documentation, such as the ‘parameter-change wiki’ documentation. Ultimately the Cosmos Hub may find it valuable to have one comprehensive set of docs for every kind of governance proposal.


Hopefully you found this useful. Questions? Comments? Feedback is always welcome! I’m on Twitter.