Skip to main content

Voting Power

Your voting power in usmewe governance is based on your tmUSDC holdings and your level.

Calculation

Effective Votes = tmUSDC Balance × Level Multiplier

Example

UsertmUSDCLevelMultiplierEffective Votes
Alice1,000Gold1.0x1,000
Bob1,000Platinum1.5x1,500
Carol500Diamond2.0x1,000

Level Multipliers

Bronze - Gold

1.0x multiplierStandard voting power

Platinum

1.5x multiplier5,000+ XP required

Diamond

2.0x multiplier10,000+ XP required

tmUSDC Balance

Your tmUSDC balance comes from:
  1. Staking USDC in the Trust Vault
  2. Receiving tmUSDC from other users
  3. Purchasing tmUSDC on DEXs (if available)
tmUSDC is yield-bearing. Your voting power grows as you earn staking rewards.

Snapshot Mechanism

Voting power is snapshotted when a proposal is created:
┌─────────────────────────────────────────────────────────────────┐
│  Block 1000: Proposal created                                   │
│              Snapshot taken of all tmUSDC balances              │
│                                                                 │
│  Block 1001+: Balance changes don't affect this vote            │
│                                                                 │
│  This prevents "vote buying" after seeing a proposal            │
└─────────────────────────────────────────────────────────────────┘

Why Snapshots?

  • Prevents flash loan attacks
  • No vote manipulation after proposal
  • Fair representation at proposal time

Delegation

You can delegate your voting power to another address:
// Delegate all voting power to another address
await tmUSDC.delegate(delegateAddress);

// Self-delegate (required to vote yourself)
await tmUSDC.delegate(myAddress);
You must self-delegate to activate your voting power. Without delegation, you cannot vote.

Delegation Rules

RuleDescription
Full delegationAll voting power goes to delegate
No partialCannot split between delegates
RevocableChange delegate anytime
No chainDelegates cannot re-delegate

Checking Your Voting Power

Via API

curl -X GET "https://api.usmewe.com/v1/governance/voting-power" \
  -H "Authorization: Bearer YOUR_TOKEN"
Response:
{
  "address": "0x...",
  "tmUSDCBalance": "1000.00",
  "level": "Platinum",
  "multiplier": 1.5,
  "effectiveVotes": "1500.00",
  "delegatedTo": null,
  "delegatedFrom": ["0x...", "0x..."],
  "totalWithDelegation": "2500.00"
}

Via Smart Contract

// Get current voting power
const votes = await governor.getVotes(address, blockNumber);

// Get voting power breakdown
const power = await governor.getVotingPower(address);
console.log(`Base: ${power.baseVotes}`);
console.log(`Multiplier: ${power.multiplier / 100}x`);
console.log(`Effective: ${power.effectiveVotes}`);

Increasing Voting Power

Deposit USDC into the Trust Vault to receive tmUSDC.
await trustVault.deposit(amount);
Earn XP through platform activity to increase your level multiplier.
  • On-time loan repayments: +20 XP
  • Referring friends: +30 XP
  • Daily streaks: +15 XP
Ask other users to delegate their voting power to you.
tmUSDC is yield-bearing. Your balance grows over time as the vault earns interest.

Proposal Threshold

To create proposals, you need 1,000 effective votes:
tmUSDC NeededLevelExplanation
1,000Bronze-Gold1,000 × 1.0 = 1,000 votes
667Platinum667 × 1.5 = 1,000 votes
500Diamond500 × 2.0 = 1,000 votes
Diamond level users need 50% less tmUSDC to create proposals!

Quorum Calculation

For a vote to be valid, 4% of total voting power must participate:
Quorum = Total tmUSDC Supply × 0.04
Example:
  • Total tmUSDC: 1,000,000
  • Quorum needed: 40,000 effective votes