#StakeLocal NosNode 😉️

Multi-sig DAO Part 2 — Governance & Community Pool Spend Proposal

Nostradamus411
5 min readOct 25, 2021

--

The governance processes in general will continue to be a living evolving exercise guided by input from the community and the Core team to establish norms and find what is most effective. There has yet to be a successful proposal around Osmosis Community Pool (OCP) spends and so the initial template is still in the process of being forged as of this writing.

The governance philosophy of the zone should intend to mirror that of the rapid design and develop cycle being used to deliver code. To achieve this governance must avoid becoming too rigid too early on and would be better suited to stay flexible to support the ability for the zone to iterate and move quickly. The more experiments we conduct the more information we will gather to guide future direction.

Err on the side of action, even if it leads to a mistake.

When faced with a decision of doing something or not, let the default starting position be on choosing to do it. More knowledge and progress will be gained from an unsuccessful attempt than tepid inaction.

🧿Age old question…Will a proposal not yet on-chain ever be viewed?

This not to say that reckless or thoughtless activity is better than nothing. Within the context of governance it is still critical to stay true to the scientific method which has propelled human civilization throughout the ages:

1 — Ask a question

2 — Hypothesize a solution

3 — Experiment

4 — Collect & analyze the results

5 — Draw a conclusion

6 — Iterate based on knowledge gained

In these early days of the zone the generally accepted framework would involve a few steps:

  • Proposal post made to the respective Osmosis / Ion Commonwealth forum. (The template for what a proposal should look like or what standard information expectations there are is currently being refined by participating community)
  • Share proposal across social channels (Telegram, Discord, Reddit, Twitter, ect) so all sub-modules of the Osmosis community are given visibility, opportunity to provide feedback, and ask questions of requesters.
  • Submit an on-chain governance proposal for a OCP spend to seed a DAO multi-signature wallet.

In part one we created a multi-signature wallet which we now want to have seed funded via a community pool spend proposal. Technical prerequisites would be that at this point you should already have a synced and operational node to interact with.

The address to put in as recipient

A community pool spend proposal requires the use of a JavaScript Object Notation “json” file. The structure of the json is as follows:

{
"title": "Our Community Pool Spend Proposal",
"description": "Explain your proposal and provide link to Commonwealth discussion(s) or other more robust documentation sites like a gist, gitbook, medium post, etc. Hosting a pdf on IPFS would be next level.",
"recipient": "osmo1vl3v86sl8ly7apsjs2myx6nd3dg3d0ngnw9pkr",
"amount": "1000000000uosmo",
"deposit": "500000000uosmo"
}

There is minimal control for formatting the description of the proposal (ASCII art is not recommended 😅) so it’s a good practice to include a link to a richer medium to explain the proposal with more detail if it is complex enough of an issue or there are visuals you’d like to provide.

One bit of formatting that can improve readability though is to put in newlines and breaks between paragraphs. You can accomplish moving to a new line this with \\n or \\n\\n to break up paragraphs with an empty line between them by putting in consecutive newline syntax.

"So a text description like this.\\nWould show up looking like...\\n\\nthis in the end."------------------------------------------------------------So a text description like this.
Would show up looking like...
this in the end.

Now that you have created and saved your proposal JSON it’s time to submit the CLI command to put the proposal on-chain. The proposal can be submitted from any wallet, it does not need to be submitted by the intended recipient of the community pool spend proposal. In this case Chad has the deposit fee funds in his chad_dao wallet.

osmosisd tx gov submit-proposal community-pool-spend ~/Documents/prop.json ~/Documents/prop.json --from chad_dao --fees 0uosmo --gas-prices 0uosmo --gas 6000000

The command entails executing a tx transaction of the type gov with the command submit-proposal then command community-pool-spendwhich expects the first argument to be the folder path to the proposal json being submitted as well as requiring the --fromflag and a few extra optional ones.

  1. --fromthis is the name of the wallet key for signing the transaction and where the deposit fee will be withdrawn
  2. --fees transaction fees to pay with the tx at the time of this writing Osmosis validators are committed to zero fees
  3. --gas-pricesalso set to zero as again free transactions are being supported by the validator set
  4. --gasBecause of the free transactions I just put in an extra high gas value to ensure the transaction has enough to complete.

If properly formatted json and CLI command you should get a response like the following, where you have one last chance to confirm all is correct before submitting it to the memory pool to be put on chain with a y response.

{"body":{"messages":[{"@type":"/cosmos.gov.v1beta1.MsgSubmitProposal","content":{"@type":"/cosmos.distribution.v1beta1.CommunityPoolSpendProposal","title":"Our Community Pool Spend Proposal","description":"Explain your proposal and provide link to Commonwealth discussion(s) or other more robust documentation sites like a gist, gitbook, medium post, etc.  Hosting a pdf on IPFS would be next level.","recipient":"osmo1vl3v86sl8ly7apsjs2myx6nd3dg3d0ngnw9pkr","amount":[{"denom":"uosmo","amount":"1000000000"}]},"initial_deposit":[{"denom":"uosmo","amount":"500000000"}],"proposer":"osmo1javh37h5ktv4tlk59et06guj9mc0cghl0d4zts"}],"memo":"","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[],"fee":{"amount":[],"gas_limit":"6000000","payer":"","granter":""}},"signatures":[]}confirm transaction before signing and broadcasting [y/N]: y

And there you have it, a submitted community spend proposal ready to fund that multi-sig DAO wallet. In a future Part 3 we’ll make the assumption the proposal passed and we will walk through the steps of actually making a transaction using a multi-sig wallet. ✌

The most powerful tech stack in the cryptosphere! ⚛️🧪🧿

--

--

Nostradamus411
Nostradamus411

Written by Nostradamus411

Seer 🔮, inquisitor 🧐, learner 🤓

No responses yet