The IOTA and Shimmer community, supported by the IOTA Foundation, has developed a Governance system.
The Fundamentals of Governance in Shimmer and IOTA
1. Open discussions in the Discord Fostered by a group of community members who regularly discuss and meet publicly to progress and develop Governance systems and tools for the IOTA Community. You can participate in this activity in The #Governance-Discussions channels (make sure to activate the Governance role in the IOTA/Shimmer Discord) and participate in the weekly meetings every Thursday at 4 pm CET. Every Community member is welcome and invited to join this important work.
2. The official IOTA/Shimmer Governance Forumis the place for specific proposal discussions. It is the first stage of reaching community consensus on proposed changes through soft consensus polling in the forum.
3. Fully utilized decentralized and immutable On-Chain Governance voting functionality integrated into the Firefly Wallet and the Hornet Nodes. This allows every Token holder to make decisions in the network based on proposals passed through the forum's governance process. Voting is a protocol feature of L1, so no Smart Contracts are needed for this type of voting.
Governance processes are specified in the Shimmer Governance Framework. This framework has been developed by the Community Governance working group in many months of discussions and is the foundational building block of how Governance in SMR and IOTA works. It mainly defines:
- Who are the stakeholders, and what are their roles in Governance processes?
- Where do proposal discussions occur, how do they need to be structured, which rules to follow, and how do they move through the three staged Governance processes to come to a final and binding decision?
- What is the scope of Governance in the SMR and IOTA network?
- How and when do Polls and Votes occur, and which rules apply to those decisions?
Summary of the Governance processes
The 3 Phases of Governance
This is an open discussion phase in the Governance forum. Forum members can submit proposals, and the community can discuss them and request changes and additions. It can move to the next phase if it finds enough support in Phase 1, signaled through likes or votes on the proposal.
In this Phase, the "Temperature check", the proposal in the forum has reached its final form. It follows a specific template that requests to lay out reasoning and exact implementation specifications for the proposed change. During a one-week forum poll, the active forum members can decide if the proposal should move to the final phase, where it will be presented to the Community of Token Holders in an On-Chain Governance vote.
The Proposal will be uploaded to nodesA node is any computer that communicates with other nodes in the network using specific software. Essentially, nodes act as connection points for data transfers. The Tangle employs various node types, including full nodes (Hornet, Bee), permanodes (Chronicle), and smart contract nodes (Wasp). in the IOTA or Shimmer network and displayed in the respective Firefly Wallet. Token holders can vote with SMR or IOTA tokens to accept or decline the proposal.
The On-Chain voting functionality
This feature consists of 2 components:
The Hornet - INX participation Plugin
- This feature can be activated as a plugin in every Hornet node and enables node operators to participate in the decentralized counting and verification of on-chain Governance votes.
- Node operators can add proposals that are due for an on-chain vote through an easy interface by uploading the unique proposal ID to their node.
- The counting of votes is based on a time-based accumulation. For each milestone(IOTA 1.5) Milestones are messages signed and issued by the coordinator. They are instrumental in ensuring healthy growth of the Tangle and guaranteeing finality. When milestones directly or indirectly approve a transaction in the Tangle, nodes mark the status of that transaction and its entire history as confirmed. (every 5 seconds) that a node finds a vote on a UTXO Output, the SMR/IOTA tokens sitting on that output and the vote statement (proposal ID, question, and answer) are registered by the nodes and added to the count for that output in an internal database. This leads to a time-based growth of cast votes, meaning the longer a voter participates with tokens in a vote, the more votes are counted for the voter.
- Node operators can always access this counting data and verify the correct counting of votes by comparing their count to other node operators' counts.
The Firefly Governance function
- The Firefly Wallet includes a Governance Dashboard. In this Dashboard, all On-Chain Voting activities are managed, and users can:
- Participate in ongoing votes on official proposals that followed the Governance process laid out in the Shimmer Governance Framework
- Register custom proposals that may be initiated by individual projects and communities but do not fall under the official Governance process and vote on these custom proposals.
Voting in Firefly works like this:
- For every Wallet of a Firefly profile, the user can define how many tokens should participate in Governance decisions. This amount of tokens creates Voting PowerThe influence or weight a validator in the committee has in the consensus process..
- To use this Voting Power, Firefly moves those tokens to a new output and locks them to participate in Governance votes. So, the tokens cannot be used to be spent on different things unless the user unlocks them again by decreasing the voting power, which frees those tokens.
- Once the Firefly Wallet recognizes that a new proposal is present in the nodes it is connected to, it displays this proposal in the Governance Dashboard
- A Proposal passes through four different phases:
- Announcement: The proposal has been uploaded to the node, and Firefly has seen the proposal. The voter is not yet able to participate in voting because voting starts in the future
- Voting open: The user can vote on the proposal. Votes are now only registered, but counting votes has yet to start. In this phase, voters are free to change their vote without directly influencing the following count of their votes.
- Counting: All participating Nodes actively count and accumulate votes on this proposal. The longer a user keeps its tokens actively voting on this proposal. The more votes will be counted for the user. Users can change their voting power and opinions during the counting phase. Still, this change only influences the future count from the time of the change and does not influence the already counted votes of a user on this proposal.
- Ended: The Proposal counting is over, and the final vote result is displayed.
- A Proposal passes through four different phases:
A detailed technical description of this voting functionality can be found in the Governance - tech section of the Wiki.
A detailed description of how to participate in Governance votes can be found in the Firefly Governance Guide
- IOTA/Shimmer Governance Forum where all official proposals are discussed.
- Shimmer Governance Guide A short introduction to using the Governance forum and creating proposals.
- Firefly Handbook A short definition and explainer of the Firefly Governance functions
- YouTube Playlist with recording of all Governance meetings.
- Meeting minutes of all governance meetings collected on a community-driven website.
- Shimmer Governance Twitter account of the Governance working group.
- Shimmer Governance GitHub Repo for the Shimmer Governance system.
- INX Participation GitHub Repo for the INX Participation Node Plugin that counts the votes.
- Community Governance GitHub Repo for the initial IOTA Governance system and the first vote.
- IOTA Treasury Website developed for the first Governance vote in our Community history, which explains the core features of the voting system.