Skip to main content

Voting flow

Voting requirements and voting power strategies

Voting power determines the weight of a user's vote based on factors such as stake, token balance, or other criteria. This mechanism ensures that governance decisions proportionally reflect the contributions or commitments of stakeholders.

Voting power calculation

There are three primary approaches to calculating voting power:

Snapshot-based approach

  • Definition:
    Voting power is determined by token balances or stakes at a specific moment (a snapshot) typically taken when the proposal is created or when voting begins.

  • Key features:

    • Static calculation: Once the snapshot is taken, voting power remains fixed—even if tokens are later transferred or unstaked.
  • Advantages:

    • Prevents manipulation of voting power during the voting period.
    • Simplifies calculations and verification processes.
  • Example:
    If a user holds 1,000 CHR at the time of the snapshot, their voting power remains 1,000 throughout the vote, regardless of any subsequent token transfers.

Dynamic approach

  • Definition:
    Voting power is recalculated in real time based on the current token balances or stakes during the voting period.

  • Key features:

    • Adaptive calculation: Voting power immediately reflects any changes in balance or stake.
  • Advantages:

    • Accurately reflects the user's ongoing commitment to the system.
    • Discourages transferring tokens or unstaking during the voting period.
  • Disadvantages:

    • Increases implementation complexity and the need for continuous verification.
  • Example:
    If a user starts with 1,000 CHR voting power and then transfers 500 CHR before the vote concludes, their voting power immediately decreases to 500.

Mixed strategy

  • Definition:
    A hybrid model that combines elements of both snapshot and dynamic approaches. Different rules may be applied based on the proposal type or specific governance settings.

  • Key features:

    • Provides the flexibility to tailor governance rules for various scenarios.
  • Example:
    Use snapshot-based voting for general proposals and switch to dynamic voting for time-sensitive or high-impact decisions.

Voting results calculation

After the voting period ends, the system calculates the results using the selected voting power strategy and proposal-specific rules. The process involves the following steps:

  1. Aggregation:
    Votes are tallied based on each user’s weighted voting power.

  2. Voting power formulas:

    • Linear: Voting power is directly proportional to the number of tokens held or staked.
    • Quadratic: Voting power scales nonlinearly, which helps balance the influence between large and small holders.
    • Mixed: A combination of linear and quadratic formulas, tailored through governance configurations.
  3. Threshold check:
    Proposals must meet predefined conditions (e.g., majority approval, quorum requirements) to pass.

  4. Result declaration:

    • The option with the highest weighted vote count wins.
    • In the event of a tie, fallback mechanisms such as administrative intervention or a veto by designated counselors may be triggered.

Voting power flow in Chromia governance

In Chromia governance, voting power is treated as a "spendable resource" allocated to proposals. The allocation method depends on the proposal type and the voting power strategy (e.g., snapshot vs. dynamic, balance vs. staked tokens, linear vs. quadratic). Once voting concludes, the voting power is either restored to the user or adjusted for future use.

Voting power lifecycle

  1. Initial calculation:
    A user’s total voting power is determined by:

    • Token balance: e.g., CHR or other supported tokens.
    • Staked tokens: Tokens that have been committed to the governance process.
    • Additional criteria: Future features might include factors such as NFT ownership or reputation.
  2. Voting participation:
    When casting a vote, a user allocates a portion of their voting power:

    • Snapshot-based voting: The allocated power is locked at the snapshot value and remains unchanged until voting ends.
    • Dynamic voting: The allocated power may fluctuate if token balances or stakes change during the voting period.
  3. Post-voting phase:

    • Snapshot-based: Voting power is automatically restored after the vote.
    • Dynamic: Voting power is recalculated based on the updated token balance and stake, making it available for future votes.

Example scenario

User's initial state

  • CHR in wallet: 300 tokens
  • CHR staked: 1,200 tokens

Voting power allocation

  • Proposal A (snapshot-based, linear voting):

    • Total voting power: 300 (wallet) + 1,200 (staked) = 1,500
    • Vote example: If the user votes with 1,000 voting power, that amount is locked until the vote ends. The remaining power for future proposals would be 500.
  • Proposal B (dynamic, quadratic voting):

    • Voting power calculation: A quadratic formula is applied, e.g., voting power = sqrt(1,200).
    • Vote example: The user’s voting power is dynamically calculated at the time of voting. If tokens are transferred or unstaked before the vote concludes, the voting power will decrease accordingly.