# Propose an Action

As mentioned in the governance overview page, a proposal is a submission to the chain in which a token holder suggests for an action to be enacted by the system.

Proposals are one of the core elements of the governance system because they are the main tool for stakeholders to propose actions/changes, which other stakeholders then vote on.

The public referenda chamber is one of the three bodies of on-chain governance as it's instantiated in Polkadot and Kusama. The other two bodies are the council and the technical committee.

# Parameters

Some of the key parameters for this guide are the following:

  • Proposal — action or items being proposed by users of the network
  • Second — other stakeholders can second (approve) a proposal if they agree with it and want to help it reach public referenda. This requires matching the deposit of the original proposer
  • Preimage hash — hash of the proposal to be enacted. The first step to make a proposal is to submit a preimage. The hash is just its identifier. The proposer of the preimage can be different than the user that proposes that preimage as a formal proposal
  • Minimum preimage deposit — minimum amount of tokens that the proposer needs to pay when submitting a preimage
  • Minimum proposal deposit — minimum amount of tokens that the proposer needs to bond when submitting a proposal. Tokens might be locked for an indeterminate amount of time because it is unknown when a proposal may become a referendum (if ever). This is true for tokens bonded by both the proposer and users that second the proposal
  • Launch period — how often new public referenda are launched
  • Cool-off period — duration (in blocks) in which a proposal may not be re-submitted after being vetoed
Variable Value
Launch Period 14400 blocks (2 days)
Cool-off Period 100800 blocks (14 days)
Minimum Preimage Deposit 0.004 GEEK
Minimum Proposal Deposit 4 GEEK

# Roadmap of a Proposal

Before a proposal is enacted, it must go through various steps. The general flow of a proposal is the following (some simplifications were made):

  • Token holders must create a preimage of the proposal, which defines the action to be carried out. The submitter pays a fee-per-byte stored: the larger the preimage, the higher the fee. Once submitted, it returns a preimage hash
  • Token holders can submit the proposal using the preimage hash, locking tokens in the process. Once the submission transaction is accepted, the proposal is listed publicly
  • Once the proposal is listed, token holders can second the proposal (vouch for it) by locking the same amount of tokens the original proposal submitter locked The most seconded proposal moves to public referendum
  • Once in referendum, token holders vote "Aye" or "Nay" on the proposal by locking tokens. Two factors account the vote weight: amount locked and locking period If the proposal passes, it is enacted after a certain amount of time

# Submitting a Preimage of the Proposal

The first step is to submit a preimage of the proposal. This is because the storage cost of large preimages can be pretty hefty, as the preimage contains all the information regarding the proposal itself. With this configuration, one account with more funds can submit a preimage and another account can submit the proposal.

Everything related to governance lives under the "Democracy" (opens new window) tab. Once there, click on the "Submit preimage" button.

Submitting a Preimage

Here, you need to provide the following information:

  1. Select the account from which you want to submit the preimage
  2. Choose the pallet you want to interact with and the dispatchable function (or action) to propose. The action you choose will determine the fields that need to fill in the following steps. In this case, it is the staking pallet and the setValidatorCount function
  3. Enter the validator number you want to change
  4. Copy the preimage hash. This represents the proposal. You will use this hash when submitting the actual proposal
  5. Click the "Submit preimage" button and sign the transaction

Make sure you copy the preimage hash, as it is necessary to submit the proposal.

Note that the storage cost of the preimage is displayed at the bottom left corner of this window. After the transaction is submitted, you will see some confirmations on the top right corner of the PolkadotJS Apps interface, but nothing will have changed in the main democracy screen. However, don't worry. If the transaction is confirmed, the preimage has been submitted.

# Submitting a Proposal

Once you have committed the preimage (check the previous section), the roadmap's next major milestone is to submit the proposal related to it. To do so, in the main democracy screen, click on "Submit proposal."

Submitting a Proposal

Here, you need to provide the following information:

  1. Select the account from which you want to submit the proposal (in this case, Alice)
  2. Enter the preimage hash related to the proposal. In this example, it is the hash of the setBalance preimage from the previous section
  3. Set the locked balance. This is the number of tokens the proposer bonds with his proposal. Remember that the proposal with the most amount of tokens locked goes to referendum. The minimum deposit is displayed just below this input tab
  4. Click the "Submit proposal" button and sign the transaction

Tokens might be locked for an indeterminate amount of time because it is unknown when a proposal may become a referendum (if ever).

After the transaction is submitted, you will see some confirmations on the top right corner of the PolkadotJS Apps interface. You should also see the proposal listed in the "Proposals" section, displaying the proposer and the amounts of tokens locked, and it is now ready to be seconded!

# Seconding a Proposal

To second a proposal means that you agree with it and want to back it up with your tokens to help it reach public referenda. The amount of tokens to be locked is equal to the proposer's original deposit - no more, no less.

A single account can second a proposal multiple times. This is by design, as an account could just send tokens to different addresses and use them to second the proposal. What counts is the number of tokens backing up a proposal, not the number of vouches it has received.

This section outlines the steps to second the proposal made in the previous section. To do so, click the "Second" button that is available for each proposal that shows up in the proposals list.

Seconding a Proposal

Here, you need to provide the following information:

  1. Select the account you want to second the proposal with (in this case, Alice)
  2. Verify the number of tokens required to second the proposal
  3. Click the "Second" button and sign the transaction

Seconding a Proposal

Tokens might be locked for an indeterminate amount of time because it is unknown when a proposal may become a referendum (if ever)

After the transaction is submitted, you will see some confirmations on the top right corner of the PolkadotJS Apps interface. You should also see the proposal listed in the "Proposals" section, displaying the proposer and the amounts of tokens locked and listing the users that have seconded this proposal!

# More

More information can be found in Polkadot's Wiki pages related to Governance (opens new window) and Participate in Democracy (opens new window).