ERC-20 é uma interface comum para tokens em contratos inteligentes no Ethereum. Ela estabelece uma forma compartilhada de os aplicativos consultarem informações, como o saldo de tokens de um endereço, e interagirem com transferências. Trata-se de um padrão que diferentes contratos podem implementar, e não do nome de um token específico.
Para entender o que é ERC20, a distinção mais útil é entre a interface compartilhada e os dados retornados por determinado contrato. Dois contratos podem oferecer os mesmos métodos e informar quantidades totais e saldos diferentes. Reconhecer essa diferença ajuda a interpretar informações sem tratar uma interface conhecida como uma recomendação de produto ou garantia econômica.
O que a interface ERC-20 padroniza
Uma interface de programação de aplicações, ou API, define formas de interação entre programas. O ERC-20 estabelece nomes comuns para métodos e especifica seus significados. Por exemplo, um aplicativo pode consultar o saldo de um endereço por meio de balanceOf, em vez de precisar de um método diferente para cada token.
A especificação EIP-20 descreve essa interface e seu objetivo: permitir que tokens sejam utilizados por outros aplicativos, incluindo carteiras e corretoras descentralizadas. A documentação de ERC-20 do Ethereum apresenta os métodos e eventos que dão suporte a essa interoperabilidade.
O benefício prático é um vocabulário comum para os programas. Esse objetivo não garante compatibilidade com todos os aplicativos, especialmente quando uma implementação não segue o padrão. Da mesma forma, reconhecer a API não comprova o valor de mercado do token nem a confiabilidade de sua implementação. Essas conclusões exigem evidências além da descrição da interface.
Quantidade total e saldo de um endereço respondem a perguntas diferentes
totalSupply() retorna a quantidade total de tokens do contrato consultado. Já balanceOf(owner) retorna o saldo de tokens associado ao endereço informado. A primeira consulta trata do total daquele token; a segunda trata de um endereço específico dentro daquele contrato.
Ao interpretar um número, mantenha junto dele a identificação do contrato e da pergunta feita. Uma informação apresentada apenas como “25 tokens” deixa em aberto se representa a quantidade total ou o saldo de um endereço. Também não esclarece qual contrato forneceu o resultado.
A especificação define o resultado de totalSupply como a quantidade total de tokens. Essa definição, por si só, não estabelece uma avaliação de mercado nem identifica uma medida separada de oferta em circulação. Da mesma forma, o saldo de um endereço representa uma quantidade no contrato consultado, sem informar quanto ela vale.
Exemplo hipotético: mesmos métodos, saldos diferentes
Considere dois contratos de tokens inteiramente hipotéticos, A e B, e um único endereço de titular também fictício. Ambos oferecem os mesmos nomes de métodos da API ERC-20. Para este exemplo didático, ficam estipuladas as seguintes quantidades brutas inventadas:
- Contrato A:
totalSupply()retorna1000, ebalanceOf(titular)retorna10. - Contrato B:
totalSupply()retorna5000, ebalanceOf(titular)retorna25.
O endereço do titular é o mesmo, assim como o nome do método usado para consultar o saldo. Mesmo assim, o saldo estipulado é 10 no contrato A e 25 no contrato B. As quantidades totais também são informações separadas.
A dedução parte de duas premissas: a API estabelece uma forma comum de consulta, e o saldo se refere a um endereço no contrato consultado. Portanto, compartilhar a forma de fazer a pergunta não exige que contratos diferentes forneçam a mesma resposta. Também não transforma os resultados em um saldo único.
Esses números são dados inventados para explicar a interface. Não representam tokens publicados, consultas realizadas, preços ou avaliações de segurança. O exemplo permite comparar as perguntas e suas respostas sem atribuir significado econômico às quantidades.
O que transfer e seu evento descrevem
A função especificada de transfer é transferir a quantidade informada de tokens para o endereço de destino informado. O ERC-20 também exige um evento Transfer quando tokens são transferidos. Os campos declarados desse evento identificam o endereço de origem, o endereço de destino e a quantidade.
Esses elementos ajudam em tarefas de leitura relacionadas. O método descreve a operação solicitada; o evento fornece um registro estruturado da transferência. A simples observação de que alguém enviou uma chamada não comprova que a transferência especificada ocorreu.
Da mesma forma, um evento isolado não comprova a honestidade da implementação, a quitação de uma obrigação de pagamento ou o comportamento de reversão da máquina virtual do Ethereum. A estrutura declarada do evento, sozinha, não verifica de forma independente a alteração de estado subjacente.
Transferências de valor zero estão expressamente previstas. O padrão exige que elas também emitam o evento. Disso decorre uma conclusão lógica: a presença de um evento Transfer não basta para estabelecer que a quantidade transferida seja positiva. É necessário considerar o campo que informa essa quantidade.
Para uma análise mais ampla do registro de uma operação, consulte como ler uma transação Ethereum em um explorador de blocos. Aqui, o foco está no comportamento de transferência e na estrutura do evento especificados pelo ERC-20.
Nome, símbolo e casas decimais são metadados opcionais
O ERC-20 descreve três métodos que ajudam a apresentar informações sobre o token. Quando disponíveis, name() retorna seu nome, symbol() retorna seu símbolo e decimals() informa a precisão decimal usada para representar quantidades para o usuário.
Os três métodos são opcionais. A especificação determina expressamente que interfaces e outros contratos não devem pressupor a presença desses valores. Uma explicação correta precisa, portanto, preservar a possibilidade de os metadados estarem indisponíveis, sem preencher a lacuna com um nome, símbolo ou número de casas decimais presumido.
Das definições desses métodos também podemos deduzir que metadados e saldos são informações distintas. Nome e símbolo descrevem o token; as casas decimais dizem respeito à representação das quantidades. Nenhuma dessas respostas é, em si, o saldo de um endereço retornado por balanceOf.
Se a sua dúvida envolve converter quantidades brutas em um número exibido, o guia sobre decimais em tokens ERC-20 e unidades brutas explica esse cálculo separadamente. Para compreender a interface, o ponto central é distinguir os metadados de representação da consulta de saldo.
Checklist para interpretar uma explicação sobre ERC-20
- Identifique o contrato. Mantenha cada quantidade associada ao contrato do token em discussão.
- Identifique a pergunta. Diferencie a quantidade total de tokens do saldo de um endereço informado.
- Separe metadados e quantidades. Nome, símbolo e precisão decimal não respondem à pergunta sobre o saldo do titular.
- Considere a ausência de metadados. Não pressuponha que os três métodos opcionais estejam disponíveis.
- Leia os campos da transferência. Considere em conjunto origem, destino e quantidade, incluindo a possibilidade de valor zero.
- Preserve os limites da informação. A API comum favorece a interoperabilidade; sua presença isolada não comprova compatibilidade universal, valor, honestidade da implementação ou conclusão de um pagamento.
Este checklist serve para interpretar documentação e exemplos educativos. Sua aplicação não exige enviar tokens nem assinar uma solicitação da carteira. As fontes permitem conferir a explicação técnica, mas sua indicação não constitui uma avaliação de segurança de um contrato específico.
Material educativo preparado com auxílio de IA, com base na documentação primária indicada. O exemplo hipotético explica a interface e não recomenda realizar transações.