Proposal Types

Exploring the different categories and formats of governance proposals within the Carbon ecosystem

Overview

There are four main types of governance proposals:

  • Text - This proposal is presented in written form only, and its implementation will not occur automatically. It may necessitate actions to be taken by external individuals or entities in order for it to be carried out, but is very useful in determining the direction in which the protocol should develop towards.

  • Community Pool Spend - This can allocate funds from the community pool to the designated address. ⚠️ When submitting this proposal, you should follow the Carbon Development Fund proposal format.

  • Parameter Change - This can modify of specific chain parameters of the a Carbon module.

  • Software Upgrade - This can upgrade the core Carbon node at a specific block height.

Other chain-specific proposals include:

Fields

All proposals will have these base fields:

{
  "title": string
  "description": string
}

title - title of your proposal

description - detailed description of the reason for the proposal and what it is going to do

Parameter Change Proposal

Modifying parameters is similar to adjusting settings. For example, increasing the maximum number of validators from 17 to 21 is a parameter change.

type: "cosmos-sdk/ParameterChangeProposal"

{
  "title": string
  "description": string
  "changes": Array<{
    "subspace": string
    "key": string
    "value": string
  }>
}

changes.subspace - Module, e.g. gov, slashing, staking

changes.key - Parameter key of value to change

changes.value - Value to change to

Text Proposal

Text proposals do not involve a modification of the source code. For example, an opinion poll would use a proposal of type PlainTextProposal.

type: "cosmos-sdk/TextProposal"

{
  "title": string
  "description": string
}

Software Upgrade Proposals

Propose a software upgrade to take place at a designated block height or time. If an alternative plan is scheduled, the software upgrade will override it.

type: "cosmos-sdk/SoftwareUpgradeProposal"

{
  "title": string
  "description": string
  "plan": {
    "name": string
    "time": string
    "height": int64
    "info": string
  }
}

Software upgrade will begin on height or time proposed, but not both.

plan.name - Name of the plan.

plan.time - When chain reaches proposed time, software upgrade will begin.

plan.height - When chain reaches proposed height, software upgrade will begin.

plan.info - Metadata about the upgrade.

Community Pool Spend Proposal

Propose allocating the community pool fund by transferring a specific amount to a designated recipient address.

type: "cosmos-sdk/CommunityPoolSpendProposal"

{
  "title": string
  "description": string
  "recipient": string
  "amount": Array<{
    "denom": string
    "amount": Int
  }>
}

recipent - Account to receive funds from community pool

amount - Amount to receive

Set Reward Weights Proposal

Propose the respective pool weights to determine the distribution of liquidity rewards.

The distribution ratio for a given pool is calculated by taking the weight of the pool divided by the total weight of all pools. Pools that are not included in the proposal will remain unchanged.

type: "liquiditypool/SetRewardsWeightsProposal"

{
  "title": string
  "description": string
  "msg": {
    "weights": Array<{
      "pool_id": uint64
      "weight": Int
    }>
    "originator": string
  }
}

msg.weights.pool_id - Pool identifier

msg.weights.weight - Weight of pool

msg.originator - Proposer's address

Last updated