Modular Governance Using Contract Action Templates

Modular Governance Using Contract Action Templates

Communities on Common are organized around the creation and execution of governance actions such as proposals and token delegation. Currently, setting up and executing these actions has a high barrier to entry because of the level of technical knowledge needed to understand and manipulate the underlying contract. We are launching Contract Action Templates that community managers can utilize to create and execute on-chain governance actions in a low-code environment. You can also make these actions easily available to the rest of your community. We believe this can help increase governance participation in communities that utilize on-chain governance.

Currently, the typical pattern for putting a governance proposal (to take one example of a governance action) on chain currently looks like this:

  1. Soft voting on a particular proposal happens on a forum thread. This is an informal process to understand what community members feel about the proposal. The forum discussion is commonly followed by a Snapshot poll to get a directional sense of the votes.
  2. A developer will craft the custom JSON code with a specific set of rules for execution. This is a critical part that requires attention and time since the execution of a proposal involves the allocation of tokens/funds — potentially $100m+.
  3. The proposal is then pushed on chain and open to voting. A portion of proposals are executed on chain and the rest off-chain. Example of a  proposal on Common.  

The highlighted second step of the process usually requires technical expertise and time. We know the common contract actions that are typically taken in communities, such as Treasury spending, parameter changes, delegations etc. Contract Action Templates provide reusable templates for executing these actions.

Creating and Using Governance Action Templates

Admins of communities on Common can use a low-code interface to create reusable Contract Action Templates for their community. Here’s how:

Add Contracts

Add contracts utilized by your communities. These are the contracts types that are supported right now:

  • Governor (Alpha/Bravo/OpenZeppelin)
  • ERC721/ERC1155
  • ERC20
  • AAVE
  • MolochDAO

Create Contract Action Templates

Create templates for actions to be executed on your community. Actions are on-chain governance activities that happen within your community such as proposals or token delegation. Templates enable community managers to create these actions in a no-code environment. To create a template, the user can add the json blob for the method on the contract that you want to call, along with other details necessary for the template to be readable. You can find more details on how to do this in the wiki (link needed).

Enable Contract Actions for your community

Use the Contract Action Templates to enable contract actions within your community. Once enabled, the contract actions became available to everyone. You could use this to make it easy for the community to create proposals, delegate tokens etc

As a community admin, you will also have the ability to use templates of other communities that operate on the same smart contracts such as ERC 20 or Governor.

Contract Action Templates make it easier for community admins to execute governance actions without writing much code. They can instead focus more of their energy on the complex coordination needed to run a decentralized organization.