Skip to main content
Version: pre-release (v0.79)

Create a freeform proposal

Freeform proposals allow the community to propose and vote on matters which don't change any network behaviour.

At enactment time, no changes are effected on the system, but the record of how token holders voted will be stored on chain.

Requirements

You will need:

  • A connected Vega wallet, with your wallet name and public key to hand
  • A minimum of whichever is larger, associated with that public key, taken from the values of the network parameters governance.proposal.freeform.minProposerBalance or spam.protection.proposal.min.tokens
  • Familiarity with governance on Vega

Submitting proposals in a batch

If you want to submit this proposal as part of a larger batch of proposals, follow this sample structure:

{
"batchProposalSubmission": {
"rationale": {
"title": "High level title",
"description": "Description of all parts of this batch of proposals"
},
"terms": {
"closingTimestamp": "123",
"changes": [
{
"enactmentTimestamp": 123,
"cancelTransfer": {
"changes": {
"transferId": "345"
}
}
},
{
"enactmentTimestamp": 123,
"cancelTransfer": {
"changes": {
"transferId": "789"
}
}
}
]
}
}
}

Templates and submitting

In the tabs below you'll see:

  • Annotated example describing what each field is for
  • JSON example
  • Command line examples for different operating systems

Replace the example data with the relevant details.

 {
proposalSubmission: {
rationale: {
title: "An example freeform proposal",
description: "I propose that everyone evaluate the following IPFS document and vote Yes if they agree. [bafybeigwwctpv37xdcwacqxvekr6e4kaemqsrv34em6glkbiceo3fcy4si](https://dweb.link/ipfs/bafybeigwwctpv37xdcwacqxvekr6e4kaemqsrv34em6glkbiceo3fcy4si)"
}
},
terms: {
newFreeform: {
// This object remains empty, but is required
},

// Timestamp as Unix time in seconds when voting closes for this proposal,
// constrained by `minClose` and `maxClose` network parameters. (int64 as string})
closingTimestamp: 1731769771,
}
}
}

Voting

Proposals are voted on by the community.

To vote, community members need, at a minimum, the larger of the following network parameters spam.protection.voting.min.tokens or governance.proposal.freeform.minVoterBalance, associated to their Vega key.

Your proposal will need participation of the value of the network parameter governance.proposal.freeform.requiredParticipation and a voting majority based on the network parameter governance.proposal.freeform.requiredMajority, so having community support is essential.