Voting Power

CredDAO uses a quadratic voting formula enhanced with reputation multipliers to ensure fair governance.

The Formula

votingPower = √(tokenBalance) × (1 + fairscore/50)

Components

ComponentDescription
√(tokenBalance)Quadratic base - square root of tokens
(1 + fairscore/50)Reputation multiplier

Implementation

pub fn calculate_voting_power(tokens: u64, fairscore: u64) -> u64 {
    let quadratic_base = (tokens as f64).sqrt() as u64;
    let reputation_multiplier = 100 + (fairscore * 100 / REPUTATION_MULTIPLIER_DENOMINATOR);
    quadratic_base.saturating_mul(reputation_multiplier) / 100
}

Example Calculations

Example 1: Active Community Member

MetricValue
Token Balance10,000
FairScore78 (Gold)
quadraticBase = √10000 = 100
multiplier = 1 + (78/50) = 2.56
votingPower = 100 × 2.56 = 256

Example 2: Whale with Low Reputation

MetricValue
Token Balance1,000,000
FairScore25 (Unscored)
quadraticBase = √1000000 = 1000
multiplier = 1 + (25/50) = 1.5
votingPower = 1000 × 1.5 = 1500

Example 3: Platinum Member

MetricValue
Token Balance50,000
FairScore92 (Platinum)
quadraticBase = √50000 ≈ 224
multiplier = 1 + (92/50) = 2.84
votingPower = 224 × 2.84 ≈ 636

Power Comparison

MemberTokensFairScoreTraditional PowerCredDAO PowerReduction
Whale A1,000,000251,000,0001,50099.85%
Active B10,0007810,00025697.4%
Expert C50,0009250,00063698.7%
New D1,000301,0004995.1%

Why Quadratic Voting?

Problem with 1-Token-1-Vote

  • Whale dominance: 1% of holders control 90% of votes
  • Plutocracy: Wealth ≠ governance capability
  • Disenfranchisement: Small holders stop participating

Quadratic Voting Solution

Traditional

  • 10,000 tokens = 10,000 votes
  • 100,000 tokens = 100,000 votes
  • 10× tokens = 10× influence

Quadratic

  • 10,000 tokens = 100 votes
  • 100,000 tokens = 316 votes
  • 10× tokens = 3.16× influence

Diminishing Returns

Votes = √(Tokens)

Doubling tokens: √(2x) = √2 ≈ 1.41× more votes
10× tokens: √(10x) ≈ 3.16× more votes
100× tokens: √(100x) = 10× more votes

Reputation Multiplier Impact

The FairScore multiplier rewards long-term, active participants:

FairScoreMultiplierImpact
1003.0×Triple voting power
85 (Platinum threshold)2.7×Nearly triple
70 (Gold threshold)2.4×More than double
50 (Silver threshold)2.0×Double
30 (Bronze threshold)1.6×60% boost
01.0×Base power only

SDK Usage

const power = client.calculateVotingPower(
  tokenBalance,
  fairscore
);
 
console.log('Quadratic base:', power.quadraticBase);
console.log('Reputation multiplier:', power.reputationMultiplier);
console.log('Total voting power:', power.totalPower);

Delegation Impact

When delegating, your voting power is affected by the delegate’s tier:

Delegate TierPower Efficiency
Platinum150% of base
Gold125% of base
Silver110% of base
Bronze100% of base
Unscored80% of base
Tip:

Delegating to a Platinum member can increase your effective voting power by up to 50%.