First make sure to have the CommuneX CLI installed. You can install it via pip using the following command:
pip install communex
For further documentation, you can check the CommuneX Github. You will need 10,000 tokens in your balance, which will be returned if your proposal passes. This encourages honest and thought-out proposals.
Custom proposal data is hosted on IPFS (InterPlanetary File System) for performance reasons. To upload data, you'll need to register with a hosting provider of your choice. We recommend using Pinata Cloud.
The process is streamlined through the governance portal.
First, click New Proposal:
Fill in the Proposal contents (markdown supported) and check the preview to ensure it satisfies your expectations. Then download the file.
Save the file and upload it to the IPFS cloud (i.e. Pinata). After uploading, you will receive a hash of the document, for example: QmPsc5bhoMBhw88Pt9mY6Umzb....
After obtaining the hash, execute the following command through the CommuneX CLI:
comx network add-custom-proposal <key> <ipfs hash>
Congratulations! You have now created a custom proposal.
To create a global proposal, use the propose-globally
command in the CommuneX CLI.
comx network propose-globally <key> --<parameter> x --<parameter> y etc
Here is the list of parameters you can propose to change.
--max-allowed-modules
--max-registrations-per-block
--target-registrations-interval
--target-registrations-per-interval
--unit-emission
--tx-rate-limit
--vote-threshold
--vote-mode
--max-proposals
--max-name-length
--burn-rate
--min-burn
--burn
--min-stake
--min-weight-stake
--adjustment-alpha
--floor-delegation-fee
--max-allowed-subnets
Important: You can only create proposals for Subnets that run on "Vote" mode, not "Authority" mode. Otherwise, you will encounter an error.
To create a proposal on a specific subnet, use the propose-on-subnet
command:
comx subnet propose-on-subnet <netuid> <key> --<parameter> x --<parameter> y etc
Here is the list of parameters you can propose to change:
--name
--founder
--founder-share
--immunity-period
--incentive-ratio
--max-allowed-uids
--max-allowed-weights
--min-allowed-weights
--max-stake
--min-stake
--tempo
--trust-ratio
--vote-mode
--max-weight-age
Replace the placeholders (<netuid>
, <key>
) with the appropriate values for your proposal as well as include any parameter with the proposed value you’d like to change.
You can also create a custom proposal on a subnet by following the custom proposal structure and using the add-custom-proposal
command:
comx subnet add-custom-proposal <netuid> <key> <IPFS>
By following these steps, you can easily create global, subnet, and custom subnet proposals using the CommuneX CLI. Remember to have the required token balance and for subnet proposals ensure the subnet is in “Vote” mode.
Thats it. thats all there is to know about creating Commune proposals.
🫡