SettleMint
ComponentsToken Features

Voting Power

Voting Power adds delegated, checkpointed voting weight to DALPAsset tokens for governance contracts that read current or past votes.

Voting Power lets a DALPAsset token participate in on-chain governance without moving the asset. Balances provide voting units through token hooks, but those units count as active votes only after the holder delegates them to themselves or to another address.

Add this feature when you need Governor-compatible vote reads, historical proposal snapshots, or a delegation model where holders can vote directly or assign their weight. The governance contract or operating process decides how those recorded votes are used.

When to use voting power

Add Voting Power when a token needs one of these behaviours:

  • proposals that read current or past voting weight
  • delegation where holders vote directly or assign their weight to another address
  • a checkpointed record of governance units over time

Do not use Voting Power as a transfer control, fee feature, or policy module. It does not approve transfers or rewrite amounts.

How voting weight becomes active

Rendering diagram...

A holder can delegate to themselves if they want to vote directly. They can also delegate to another address. Until delegation happens, the token balance exists, but it does not carry active voting power.

The feature records checkpoint changes when token units move through mint, burn, redeem, or transfer hooks. Governance contracts can then query voting power at a past timestamp timepoint instead of relying only on the current balance.

Capabilities

CapabilityWho uses itWhat it doesOperational note
Delegate voting powerToken holderAssigns the holder's voting weight to themselves or another addressDelegation must happen before the governance snapshot that needs the votes
Delegate by signatureAnyone with a valid holder signatureApplies delegation without the holder submitting the transaction directlyUses EIP-712 style signed delegation data
Update checkpointsDALPAsset token hooksAdjusts voting units after mint, burn, redeem, or transfer activityThe feature does not block or rewrite the token movement
Read current and past votesGovernance contracts and operatorsReturns current votes, past votes, past total supply, and historical delegation dataUse timestamp timepoints for proposal snapshots and audit review

What operators should plan for

  • Prompt holders to delegate before the first governance snapshot. Undelegated balances do not count.
  • Monitor delegation concentration. If many holders delegate to one address, that address can accumulate large voting weight.
  • Use snapshot-aware governance contracts for proposals. A governance process that reads only current balances is easier to manipulate than one that reads historical voting power at a fixed timestamp timepoint.
  • Place Voting Power after amount-changing fee features in the token feature order so voting checkpoints reflect the final post-fee balances.

Limits and failure modes

  • Delegating after a proposal snapshot is too late for that proposal.
  • A transfer before delegation does not create retroactive voting power.
  • Enable Voting Power before holders receive balances. The feature does not seed voting units for balances that already exist, and later outgoing movements from those earlier balances can fail because the voting ledger starts at zero for those holders.
  • High-frequency token movement creates more checkpoints. That is expected, but it increases on-chain storage over time.
  • Disabling the feature stops future voting-power reads through the feature. Existing checkpoint data remains part of the chain history. Operators should not disable the feature while active governance depends on future reads.

Audit signals

Voting Power emits and exposes signals that help operators and governance reviewers reconstruct who had voting weight and when.

SignalMeaning
DelegateChanged(delegator, fromDelegate, toDelegate)A holder changed where their voting weight is assigned
DelegateVotesChanged(delegate, previousBalance, newBalance)A delegate's active voting power changed
VotingUnitsTransferred(from, to, amount)Underlying voting units changed because token units moved
Past vote queriesGovernance can read voting power, total supply, and delegation state at a past timestamp

Compatibility

Voting Power has no external provider dependency. The feature can be used with Historical Balances, but the two features track different questions: Historical Balances tracks token balances over time, while Voting Power tracks delegated governance weight.

Voting Power is compatible with other token features when ordered after features that change transfer amounts. The feature does not require a governance role configuration of its own.

See also

On this page