O que é ERC20? Entenda o padrão de tokens do Ethereum

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() retorna 1000, e balanceOf(titular) retorna 10.
  • Contrato B: totalSupply() retorna 5000, e balanceOf(titular) retorna 25.

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

  1. Identifique o contrato. Mantenha cada quantidade associada ao contrato do token em discussão.
  2. Identifique a pergunta. Diferencie a quantidade total de tokens do saldo de um endereço informado.
  3. Separe metadados e quantidades. Nome, símbolo e precisão decimal não respondem à pergunta sobre o saldo do titular.
  4. Considere a ausência de metadados. Não pressuponha que os três métodos opcionais estejam disponíveis.
  5. Leia os campos da transferência. Considere em conjunto origem, destino e quantidade, incluindo a possibilidade de valor zero.
  6. 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.