ERC-20: O que É e Como Funciona | Ethereum IA
Entenda o padrão ERC-20 no Ethereum, como funcionam os tokens fungíveis, suas funções técnicas e por que ele é tão relevante.
O que é ERC-20?
ERC-20 é o padrão técnico mais utilizado para a criação de tokens fungíveis na blockchain do Ethereum. A sigla “ERC” significa Ethereum Request for Comments, um processo formal pelo qual a comunidade Ethereum propõe melhorias e padrões técnicos. O número “20” refere-se ao identificador da proposta original, submetida por Fabian Vogelsteller e Vitalik Buterin em novembro de 2015. Esse padrão define um conjunto de regras e interfaces que todos os tokens compatíveis devem implementar, garantindo interoperabilidade entre carteiras, exchanges, contratos inteligentes e aplicações descentralizadas.
A palavra “fungível” é essencial para entender o ERC-20. Um token fungível é aquele em que cada unidade é idêntica e intercambiável com qualquer outra unidade do mesmo tipo — da mesma forma que uma nota de R$ 50 tem o mesmo valor que qualquer outra nota de R$ 50. Isso diferencia o ERC-20 do padrão ERC-721, usado para tokens não fungíveis (NFTs), onde cada unidade é única.
Como funciona o padrão ERC-20
O ERC-20 específica uma interface de contrato inteligente em Solidity que define seis funções obrigatórias e dois eventos que todo token deve implementar:
Funções obrigatórias:
- totalSupply(): retorna a quantidade total de tokens existentes. Esse valor pode ser fixo (definido na criação) ou variável (se o contrato permitir emissão ou queima de tokens)
- balanceOf(address): retorna o saldo de tokens de um endereço específico. É a função consultada quando você abre sua carteira e vê a quantidade de determinado token
- transfer(address, uint256): permite que o detentor dos tokens envie uma quantidade específica para outro endereço. É a função mais básica de movimentação de valor
- transferFrom(address, address, uint256): permite que um endereço autorizado transfira tokens em nome do proprietário. Essa função é fundamental para o funcionamento de DEXs e protocolos DeFi
- approve(address, uint256): autoriza um endereço (geralmente um contrato inteligente) a gastar até uma quantidade definida de tokens em nome do proprietário
- allowance(address, address): consulta quanto um endereço autorizado ainda pode gastar em nome do proprietário
Eventos obrigatórios:
- Transfer: emitido sempre que tokens são transferidos, incluindo criação (mint) e destruição (burn)
- Approval: emitido quando um endereço recebe autorização para gastar tokens
Essa padronização aparentemente simples foi revolucionária. Antes do ERC-20, cada projeto criava sua própria implementação de token com funções, nomes e comportamentos diferentes, tornando impossível a interação automatizada entre diferentes tokens e aplicações.
Por que o ERC-20 é tão importante
A importância do ERC-20 vai muito além de uma especificação técnica. Ele criou as bases para todo o ecossistema de finanças descentralizadas (DeFi) e da economia de tokens no Ethereum. Com o padrão, qualquer token ERC-20 funciona automaticamente com:
- Carteiras: MetaMask, Trust Wallet, Rabby, Rainbow e qualquer carteira compatível com Ethereum podem exibir e transacionar tokens ERC-20 sem configuração especial
- Exchanges descentralizadas (DEXs): Uniswap, Curve, SushiSwap e outras DEXs podem listar e negociar qualquer token ERC-20 automaticamente, sem necessidade de integração individual
- Protocolos DeFi: Aave, Compound, MakerDAO e outros protocolos de empréstimo e rendimento operam com qualquer token ERC-20
- Ferramentas de análise: Etherscan, Dune Analytics e outras plataformas podem rastrear e exibir dados de qualquer token ERC-20
- Exchanges centralizadas: a padronização facilita a listagem de novos tokens em exchanges como Binance e Coinbase
Essa composabilidade — a capacidade de diferentes protocolos se integrarem como peças de Lego — é frequentemente citada como uma das maiores forças do ecossistema Ethereum, e o ERC-20 é o alicerce dessa composabilidade.
Exemplos de tokens ERC-20
O padrão ERC-20 abrange uma enorme variedade de casos de uso:
Stablecoins: USDT (Tether), USDC (Circle) e DAI (MakerDAO) são tokens ERC-20 pareados ao dólar americano. São amplamente utilizados por brasileiros como forma de proteção cambial e para transações internacionais. Juntas, essas stablecoins representam centenas de bilhões de dólares em valor de mercado.
Tokens de governança: UNI (Uniswap), AAVE (Aave), COMP (Compound) e MKR (MakerDAO) conferem poder de voto nas decisões dos respectivos protocolos.
Tokens de utilidade: LINK (Chainlink) é usado para pagar serviços de oráculos descentralizados. GRT (The Graph) é utilizado para consultas de dados indexados em blockchains.
Wrapped tokens: WETH (Wrapped Ether) é uma versão ERC-20 do próprio ETH, necessária porque o Ether nativo foi criado antes do padrão ERC-20 e não é nativamente compatível com ele. WBTC (Wrapped Bitcoin) representa Bitcoin na rede Ethereum.
Memecoins: SHIB (Shiba Inu) e PEPE são memecoins que, apesar de seu caráter especulativo, são tecnicamente tokens ERC-20 totalmente funcionais.
Contexto histórico
A proposta do ERC-20 foi formalizada em novembro de 2015, mas só se tornou um padrão amplamente adotado em 2017, durante o boom das ICOs (Initial Coin Offerings). Naquele período, centenas de projetos lançaram tokens ERC-20 para captar investimentos, levantando bilhões de dólares. A facilidade de criar um token ERC-20 foi um dos fatores que alimentou essa onda — e também seus abusos, com projetos fraudulentos que captaram fundos e desapareceram.
O padrão foi oficialmente finalizado como EIP-20 (Ethereum Improvement Proposal 20) e permanece essencialmente inalterado desde então, uma prova de sua robustez de design. Variações posteriores, como o ERC-777, tentaram corrigir limitações do ERC-20 (como o problema do approve/transferFrom, que pode levar à perda de tokens se enviados diretamente a contratos não preparados), mas nenhuma alcançou a mesma adoção.
Criando um token ERC-20
Tecnicamente, qualquer desenvolvedor com conhecimento básico de Solidity pode criar um token ERC-20 com poucas dezenas de linhas de código. Bibliotecas como a OpenZeppelin fornecem implementações auditadas e prontas para uso, reduzindo o código necessário a poucas linhas de configuração.
Essa acessibilidade é uma faca de dois gumes. Por um lado, democratiza a criação de ativos digitais, permitindo que qualquer projeto lance seu token. Por outro, facilita a criação de tokens fraudulentos, rug pulls (quando desenvolvedores abandonam o projeto após captar recursos) e esquemas de pump-and-dump.
Para brasileiros interessados em desenvolvimento, a documentação da OpenZeppelin e os tutoriais da Ethereum Foundation são pontos de partida recomendados, ambos gratuitos e disponíveis em inglês.
Limitações conhecidas do ERC-20
Apesar de sua importância histórica, o ERC-20 possui limitações técnicas conhecidas:
- Problema do double-approve: ao alterar o valor de uma aprovação existente, existe uma condição de corrida que pode permitir ao spender gastar mais do que o pretendido. A solução recomendada é zerar a aprovação antes de definir um novo valor
- Tokens perdidos em contratos: se um usuário enviar tokens ERC-20 diretamente para um contrato que não foi programado para lidar com eles, os tokens ficam permanentemente travados. Estima-se que milhões de dólares em tokens foram perdidos dessa forma
- Ausência de callback: diferente do ERC-721, o ERC-20 não possui mecanismo nativo para notificar contratos sobre recebimento de tokens
O padrão ERC-223 foi proposto para resolver o problema de tokens perdidos em contratos, e o ERC-777 adicionou funcionalidades como callbacks e operadores. No entanto, o ERC-20 continua dominante pela inércia de sua adoção massiva e pela vasta infraestrutura já construída ao seu redor.
Relevância para brasileiros
Para o público brasileiro, tokens ERC-20 são a porta de entrada mais comum no ecossistema Ethereum. Stablecoins como USDT e USDC são amplamente utilizadas para remessas internacionais, proteção contra a desvalorização do real e acesso a serviços financeiros descentralizados.
Ao adquirir tokens ERC-20 em exchanges brasileiras, é importante verificar em qual rede o token está sendo transferido. O mesmo token (por exemplo, USDT) pode existir em múltiplas redes (Ethereum, Arbitrum, Polygon, Tron), e enviar para a rede errada pode resultar em perda dos fundos. Sempre confirme a rede de destino antes de realizar saques.
Termos relacionados
- ERC-721: padrão para tokens não fungíveis (NFTs)
- ERC-1155: padrão multi-token que combina características do ERC-20 e ERC-721
- Solidity: linguagem de programação usada para criar contratos ERC-20
- Smart contract: contrato inteligente que implementa as funções do padrão
- DeFi: ecossistema de finanças descentralizadas construído sobre tokens ERC-20
- DEX: exchanges descentralizadas que negociam tokens ERC-20
Aviso importante: este conteúdo tem caráter exclusivamente educacional e informativo. A existência de um token no padrão ERC-20 não garante sua legitimidade ou valor. Muitos tokens são criados com fins fraudulentos. Não constitui recomendação de investimento. Faça sua própria pesquisa antes de adquirir qualquer token.