Escrito por Pablo Gómez
Founder & CEO da Metlabs · Revisado em 11 de outubro de 2026
O ERC-20Votes herda do módulo abstrato `Votes` da OpenZeppelin, que implementa o ERC-5805. As unidades de voto de cada conta equivalem ao seu saldo ERC-20, mas esse saldo não conta como voto até que a conta delegue, a si mesma ou a outra, com `delegate` ou `delegateBySig`. A cada transferência ou mudança de delegação, grava-se um checkpoint do poder de voto, que depois é consultado com `getVotes` e `getPastVotes`. Por padrão, o relógio usa o número do bloco e, conforme o ERC-6372, pode usar timestamps. Não é um EIP com número próprio, e sim uma extensão de contrato da OpenZeppelin em conformidade com esses padrões.
É o bloco de construção padrão das DAO. Habilita votação on-chain segura por snapshot, que impede comprar voto e revendê-lo no mesmo bloco, e governança delegada sem ceder a custódia. É a materialização direta do ERC-5805 sobre um token fungível.
Os tokens de governança mais conhecidos são construídos sobre esse padrão: UNI da Uniswap, COMP da Compound (o design original que inspirou a extensão), ENS, Gitcoin e AAVE. Combina-se com o contrato `Governor` da OpenZeppelin para o fluxo de propor, votar, enfileirar e executar, frequentemente junto a um `TimelockController`. Nas versões recentes da OpenZeppelin, o `ERC20Votes` foi unificado em torno de `uint256`, em contraste com a antiga variante limitada a `uint96` por compatibilidade com o Governor da Compound.
Também conhecido como
- ERC20Votes





