Skip to content

Delegate Centralization#


NFTs typically have smaller supplies than ERC20 governance tokens. What is more, if root token NFTs have other non governance utilities, end users may not immediately opt into governance.

As such, there could be a higher risk for delegate centralization than most governance use cases. Even with benevolent delegates, centralization poses risk in the case that an important wallet with many delegate votes is compromised. Having votes spread amongst more users allows for better checks and balances and an overall more secure system.

To combat delegate centralization, the implementer could consider introducing limits on the number of delegate votes a given address can receive. Something to the tune of the following pseudo-code:

maxDelegates = ....

delegate(toAddress, toAmount) {
  require(currentDelegates + toAmount < maxDelegates, "Max delegates already reached");

Note: Such an addition adds scope and bug surface area to the contract, which may be undesirable.