Written by Pablo Gómez
Founder & CEO at Metlabs · Reviewed on October 11, 2026
ERC-5805 separates balance from voting power: holding tokens does not count as votes until the account delegates that power, even to itself. Delegation uses `delegate` or, gas-free for the signer, `delegateBySig` via an EIP-712 signature. Every change writes a checkpoint into a history of voting units, queried with `getVotes` (current) and `getPastVotes` for a specific point in time. That timepoint defaults to block number and is compatible with ERC-6372 to measure in timestamps instead. The standard serves several token types, not only fungible ones.
It solves the core security problem of on-chain governance: measuring voting power against a fixed snapshot stops anyone buying tokens, voting and selling them in the same block. Delegation adds representative governance without the holder giving up custody of their tokens.
The canonical implementation is OpenZeppelin Contracts' abstract `Votes` module, from which `ERC20Votes` and `ERC721Votes` derive. Compound pioneered the delegate-and-checkpoint pattern in its COMP token; ERC-5805 explicitly codifies OpenZeppelin's more flexible implementation that returns `uint256`. It pairs with the `Governor` contract for a DAO's full propose, vote and execute cycle.
Also known as
- ERC5805
- Voting with delegation





