Comprar cripto
Mercados
Spot
Centro de eventos
Centro de Recompensas
Mais
0-Fee Fest
ERC-20: O que é ERC-20?ERC-20 é um padrão de tokens da Ethereum que define uma interface comum para ativos cripto fungíveis criados por meio de contratos inteligentes.Fungível significa que unidades iguais doERC-20: O que é ERC-20?ERC-20 é um padrão de tokens da Ethereum que define uma interface comum para ativos cripto fungíveis criados por meio de contratos inteligentes.Fungível significa que unidades iguais do

ERC-20

2026/10/13 15:30
#Intermediate
Humanity
H$0.05624-2.69%
o1.exchange
O$0.4096-1.20%
UMA
UMA$0.3736-0.32%
PortugalNationalTeam
POR$0.06725-2.02%
TokenFi
TOKEN$0.001839-0.64%

O que é ERC-20?

ERC-20 é um padrão de tokens da Ethereum que define uma interface comum para ativos cripto fungíveis criados por meio de contratos inteligentes.Fungível significa que unidades iguais do mesmo token são intercambiáveis de acordo com as regras contábeis do contrato do token.Por exemplo, uma unidade inteira de um token ERC-20 comum tem as mesmas propriedades definidas pelo contrato que outra unidade inteira do mesmo token.

A especificação oficial do ERC-20 define funções para verificar a oferta e os saldos de tokens, transferi-los e autorizar terceiros a gastá-los.

Ela também define eventos padronizados que permitem a carteiras e aplicativos observar transferências e alterações de aprovação.O ERC-20 é um padrão Final Ethereum Request for Comments e continua sendo a principal base técnica para tokens fungíveis em ecossistemas compatíveis com Ethereum.O padrão melhora a interoperabilidade, pois carteiras, contratos inteligentes, exploradores de blockchain, sistemas de custódia e outros aplicativos cripto podem usar os mesmos métodos básicos para vários tokens.O ERC-20 não determina o preço, a política de oferta, a classificação legal, a utilidade, a garantia de colateral, os direitos de governança ou a qualidade de investimento de um token.

O que significa ERC?

ERC significa Ethereum Request for Comments.Um ERC descreve um padrão ou convenção no nível de aplicativo que desenvolvedores podem implementar em contratos inteligentes da Ethereum e em softwares relacionados.O número 20 identifica a proposta que introduziu essa interface de tokens fungíveis.Ele não se refere ao número de tokens, às casas decimais, às redes compatíveis ou às funções do contrato.O ERC-20 também é frequentemente chamado de EIP-20, pois o documento faz parte do processo de Ethereum Improvement Proposals.

Por que o ERC-20 foi criado?

Antes de existir um padrão compartilhado para tokens fungíveis, cada contrato inteligente podia oferecer nomes e regras diferentes para consultas de saldo, transferências e gastos delegados.Uma carteira precisaria de código de integração personalizado para cada token.Um aplicativo descentralizado não poderia presumir com segurança que dois contratos de token ofereciam suporte às mesmas operações.O ERC-20 criou uma interface mínima compartilhada que permite a um aplicativo interagir com vários tokens fungíveis.Essa interoperabilidade ajudou a tornar saldos de tokens úteis em pagamentos, governança, empréstimos, sistemas de liquidez, vaults, jogos, programas de recompensas e outros aplicativos cripto.O padrão permanece deliberadamente limitado para que os desenvolvedores possam adicionar comportamentos especializados sem alterar sua interface básica.

Como funciona o ERC-20

Um token ERC-20 é controlado por um contrato inteligente implantado na Ethereum ou em uma blockchain compatível.O contrato registra quantas unidades de token cada endereço possui.Também registra a oferta total de tokens e as permissões de gasto concedidas pelos proprietários a terceiros.Quando ocorre uma transferência válida, o contrato reduz o saldo do remetente e aumenta o saldo do destinatário.

O contrato emite um evento

Transfer
para que softwares externos possam observar a movimentação.

Quando um proprietário aprova um gastador, o contrato atualiza uma permissão e emite um evento

Approval
.

Os nós da blockchain executam as regras do contrato e verificam se cada alteração de estado aceita é válida.O contrato do token não mantém uma blockchain separada, pois opera dentro do estado e do modelo de segurança de sua rede hospedeira.

Principais funções do ERC-20

A interface ERC-20 obrigatória inclui seis funções principais.

São elas:

totalSupply
,
balanceOf
,
transfer
,
allowance
,
approve
e
transferFrom
.

O padrão também descreve as funções opcionais de metadados

name
,
symbol
e
decimals
.

Criação, queima, pausa, tributação, votação, congelamento e limites de oferta não são exigidos pela interface principal.Um token pode adicionar esses recursos por meio de lógica personalizada ou extensões padronizadas.

A função totalSupply

A função

totalSupply
retorna o número de unidades de token atualmente incluídas na oferta informada pelo token.

O valor é expresso na menor unidade interna do token.Ele não revela automaticamente a oferta máxima possível.Um contrato pode permitir que tokens adicionais sejam criados posteriormente, mesmo quando a oferta total atual está muito abaixo de um máximo declarado.Um token também pode permitir queima, o que reduz sua oferta total atual.

Os usuários devem verificar as permissões de criação e os controles de oferta, em vez de usar

totalSupply
como prova de escassez permanente.

A função balanceOf

A função

balanceOf
retorna o saldo de tokens registrado para um endereço específico.

O resultado é expresso na menor unidade interna do token.Normalmente, o saldo exibido pela carteira é calculado formatando esse número inteiro de acordo com a configuração decimal do token.A função informa apenas o saldo em um contrato de token.Ela não inclui tokens com nomes semelhantes criados em outros endereços de contrato ou em outras redes.Alguns tokens incomuns podem alterar saldos por meio de rebase ou de outra lógica contábil, sem emitir uma transferência comum para cada titular.

A função transfer

A função

transfer
move uma quantidade especificada do saldo de quem faz a chamada para um destinatário.

Quem faz a chamada precisa ter tokens suficientes para concluir a operação.

Uma transferência bem-sucedida deve emitir um evento

Transfer
.

A especificação ERC-20 exige que uma transferência de valor zero seja tratada como uma transferência normal e emita o evento.De acordo com o padrão, a função retorna um valor booleano de sucesso.

Os aplicativos não devem presumir que o valor retornado nunca possa ser

false
.

Muitas implementações modernas revertem em caso de falha, em vez de retornar

false
, mas as integrações devem considerar o comportamento do token específico.

A função approve

A função

approve
permite que o proprietário de tokens defina quantos tokens um gastador pode transferir de seu saldo.

O gastador não recebe os tokens imediatamente.

Em vez disso, o contrato registra uma permissão que o gastador pode usar posteriormente por meio de

transferFrom
.

A aprovação se aplica a um proprietário, um gastador e um contrato de token.Uma aprovação em uma rede ou contrato de token não autoriza automaticamente gastos em outro local.Os usuários devem tratar transações de aprovação como permissões financeiras, não como conexões inofensivas de carteira.

A função allowance

A função

allowance
informa quantos tokens um gastador está atualmente autorizado a transferir de um proprietário.

O valor pode diminuir quando o gastador usa

transferFrom
.

O proprietário pode atualizar a quantidade por meio de outra transação de aprovação.Algumas implementações tratam o valor máximo de um inteiro sem sinal como uma aprovação ilimitada e podem não reduzir esse valor após cada transferência.Uma aprovação ilimitada continua sendo perigosa enquanto o gastador mantiver acesso e o proprietário tiver saldo do token.Os usuários devem revisar e revogar permissões que não sejam mais necessárias.

A função transferFrom

A função

transferFrom
permite que um gastador aprovado transfira tokens do proprietário para um destinatário.

O gastador precisa ter permissão suficiente, e o proprietário precisa ter saldo suficiente.Uma chamada bem-sucedida normalmente reduz a permissão disponível, a menos que a implementação a trate como ilimitada.

A função deve emitir um evento

Transfer
para a movimentação dos tokens.

Esse modelo de transferência delegada permite que contratos inteligentes recebam pagamentos, aceitem depósitos, bloqueiem colateral ou realizem outras ações autorizadas.O modelo também cria riscos, pois um gastador malicioso ou comprometido pode usar a permissão restante sem pedir ao proprietário que aprove cada transferência.

Eventos ERC-20

O padrão ERC-20 define os eventos

Transfer
e
Approval
.

Eventos são registros de transações que aplicativos off-chain podem indexar com eficiência.Carteiras, ferramentas de análise, sistemas contábeis e exploradores de blockchain usam esses registros para rastrear a atividade dos tokens.Um evento deve sempre ser interpretado junto com o endereço do contrato que o emitiu.Um contrato malicioso pode usar nomes de eventos conhecidos sem representar um token autêntico ou valioso.

O evento Transfer

O evento

Transfer
registra o remetente, o destinatário e a quantidade de tokens.

Transferências normais usam endereços diferentes de zero para o remetente e o destinatário.A criação de tokens costuma ser representada por uma transferência do endereço zero para o destinatário.A destruição de tokens costuma ser representada por uma transferência do titular para o endereço zero.

A especificação ERC-20 exige que os tokens recém-criados gerem um evento

Transfer
do endereço zero quando a implementação cria oferta.

Um evento de criação observado não prova que novas emissões serão impossíveis no futuro.

O evento Approval

O evento

Approval
registra o proprietário, o gastador e o valor da permissão.

Os aplicativos podem usá-lo para acompanhar alterações na autoridade de gasto delegada.Uma aprovação não transfere tokens nem altera a propriedade por si só.

Ela permite que o gastador use

transferFrom
dentro do limite autorizado.

Revogar uma permissão não reverte transferências de tokens feitas enquanto ela estava ativa.

Nome e símbolo ERC-20

As funções

name
e
symbol
fornecem informações legíveis sobre o token.

O nome pode descrever o ativo, enquanto o símbolo fornece um rótulo mais curto para exibição.As duas funções são opcionais na especificação ERC-20 original.Nomes e símbolos não são exclusivos.Qualquer pessoa pode implantar um token que copie o nome e o símbolo de outro ativo.Carteiras e usuários devem verificar o endereço completo do contrato e a rede blockchain, em vez de confiar apenas na marca.

O que são casas decimais ERC-20?

A função opcional

decimals
informa aos aplicativos como formatar as menores unidades do token para exibição legível.

Um token com 18 casas decimais divide sua quantidade inteira interna por 10 elevado a 18 para a exibição padrão.Por exemplo, uma quantidade interna de 1.000.000 unidades representa um token quando ele usa seis casas decimais.As casas decimais não transformam o saldo na blockchain em um número de ponto flutuante.Contratos inteligentes realizam a contabilidade dos tokens com números inteiros.O valor decimal afeta a exibição e a denominação, não o modelo aritmético subjacente.

Dezoito casas decimais são comuns e são o padrão da implementação ERC-20 atual da OpenZeppelin, mas tokens ERC-20 podem usar outros valores.

Modelos de oferta ERC-20

O ERC-20 não determina como a oferta de tokens deve ser criada.Um token de oferta fixa pode emitir toda a sua oferta durante a implantação e não oferecer uma função posterior de criação.Um token com limite pode permitir a criação até que seja atingido um máximo definido no contrato.Um token sem limite pode permitir que uma conta autorizada ou um processo do protocolo crie unidades adicionais sem um máximo permanente.Um token algorítmico pode ajustar a oferta de acordo com condições programadas.Um token wrapped pode emitir unidades quando um ativo subjacente é depositado e queimar unidades quando esse ativo é sacado.

O guia oficial de oferta ERC-20 explica que a lógica de oferta deve ser adicionada à implementação básica por meio de um mecanismo de criação adequado.

Criação de tokens ERC-20

A criação (mint) gera novas unidades de token e aumenta a oferta total.A interface ERC-20 básica não define uma função pública de mint nem especifica quem pode chamá-la.Um token pode restringir a criação a um administrador, processo de governança, bridge, sistema de staking, vault ou outra autoridade definida pelo contrato.Permissões de criação inseguras podem diluir os titulares existentes ou invalidar premissas de colateral.Os usuários devem verificar se a criação é possível, quem a controla, se há um limite e se a implementação pode ser atualizada.A alegação de que um token tem oferta fixa deve ser verificada na lógica do contrato implantado e nas permissões privilegiadas.

Queima de tokens ERC-20

A queima destrói unidades de token e normalmente reduz a oferta total.O padrão básico não exige que os titulares tenham uma função pública de queima.Uma implementação pode permitir que os titulares queimem seus próprios tokens ou que gastadores aprovados queimem tokens usando uma permissão.Outros sistemas queimam tokens apenas durante resgates, liquidações ou operações do protocolo.Enviar tokens para um endereço inacessível nem sempre equivale a uma queima no contrato, pois a oferta total informada pode permanecer inalterada.Os usuários devem examinar a lógica de queima real do token antes de interpretar dados de oferta.

Aprovações ERC-20 e condição de corrida de permissões

Alterar diretamente uma permissão existente, diferente de zero, para outro valor também diferente de zero pode criar um risco de ordenação de transações.Um gastador pode usar a permissão antiga antes de a nova aprovação do proprietário ser confirmada e, depois, receber a nova permissão.A especificação original ERC-20 observa que as interfaces de usuário devem primeiro definir a permissão como zero antes de atribuir outro valor diferente de zero.O próprio contrato do token não deve exigir essa sequência, pois isso reduziria a compatibilidade com aplicativos mais antigos.Reduzir ou aumentar uma permissão por meio de funções auxiliares cuidadosamente projetadas pode melhorar a usabilidade, mas o suporte varia entre as implementações.Os usuários devem evitar deixar permissões maiores do que as razoavelmente necessárias para um aplicativo.

Aprovações ilimitadas de tokens

Uma aprovação ilimitada geralmente define a permissão como o valor máximo suportado por um inteiro sem sinal de 256 bits.Essa abordagem reduz a necessidade de enviar uma nova aprovação antes de cada interação.Ela também concede ao gastador autoridade contínua sobre os saldos atuais e futuros daquele token.Se o contrato gastador sofrer uma exploração, for atualizado de forma maliciosa ou estiver sob o controle de um administrador comprometido, a permissão poderá ser usada para retirar os tokens do titular.A conveniência deve ser ponderada em relação ao valor e à duração da permissão.Uma permissão limitada pode reduzir a perda máxima causada pelo comprometimento de um único gastador.

O que é Permit ERC-2612?

ERC-2612 é uma extensão que permite ao proprietário de um token ERC-20 criar uma permissão por meio de uma mensagem assinada.Outra conta ou contrato inteligente pode enviar a permissão assinada on-chain.Isso pode combinar uma aprovação e uma ação no aplicativo em um único fluxo para o usuário.

A especificação oficial de permit ERC-2612 adiciona

permit
,
nonces
e
DOMAIN_SEPARATOR
ao ERC-20.

Cada permit bem-sucedido consome um nonce, evitando normalmente que a mesma assinatura seja reutilizada.Um prazo limita por quanto tempo a assinatura permanece válida.O suporte a permit é opcional e não faz parte da interface ERC-20 básica original.

Riscos de assinatura de permit

Uma assinatura de permit pode autorizar o gasto de tokens mesmo que assiná-la não envie imediatamente uma transação on-chain do proprietário.Sites de phishing podem apresentar um permit como login, verificação ou mensagem inofensiva sem gas.O gastador pode enviar posteriormente um permit assinado válido e usar a permissão resultante antes do prazo de validade.Antes de assinar, os usuários devem verificar o token, o gastador, o valor, a rede, o nonce e a data de expiração.Uma solicitação de assinatura não deve ser considerada segura apenas porque a carteira informa que não há pagamento de gas.Carteiras de contratos podem exigir suporte adicional para validação de assinaturas além do padrão básico de contas de propriedade externa.

O ERC-20 oferece chamadas de retorno automáticas para destinatários?

As funções de transferência ERC-20 básicas não exigem que um contrato inteligente destinatário confirme o recebimento dos tokens.Assim, uma transferência pode ser concluída mesmo que o contrato destinatário não tenha uma função para registrar ou devolver os tokens.Isso pode deixar ativos presos em contratos incompatíveis.O ERC-20 também não chama automaticamente o código do destinatário após uma transferência comum.

A extensão ERC-1363 adiciona operações de transferência com chamada e aprovação com chamada para aplicativos que precisam desse comportamento.

Extensões que permitem chamadas de retorno adicionam chamadas externas e devem ser analisadas quanto a riscos de reentrância e segurança do receptor.

SafeERC20 e tokens não padronizados

A especificação ERC-20 determina que quem chama as funções deve lidar com um valor retornado

false
.

Na prática, alguns contratos de tokens antigos ou incomuns não retornam um valor booleano, mesmo quando a transferência é bem-sucedida.

Outras implementações revertem em caso de falha, em vez de retornar

false
.

Uma chamada direta à interface que presume um único comportamento pode falhar ou interpretar o resultado incorretamente.

A biblioteca SafeERC20 atual encapsula operações de token e lida tanto com tokens que retornam

false
quanto com certos tokens que não retornam valor.

Um wrapper melhora a compatibilidade, mas não torna um token malicioso seguro do ponto de vista econômico.

Tokens com taxa de transferência

Um token com taxa de transferência deduz uma cobrança durante a movimentação do token.O destinatário recebe menos do que a quantidade solicitada pelo remetente ou pelo contrato que fez a chamada.Um protocolo que credita o valor solicitado em vez de medir o valor efetivamente recebido pode ficar subcolateralizado.Os aplicativos devem comparar os saldos antes e depois de uma transferência quando oferecerem suporte a esse comportamento.As regras de taxas também podem mudar quando o contrato é atualizável ou controlado por um administrador.Nomes padronizados de funções ERC-20 não garantem um resultado fixo para a transferência.

Tokens ERC-20 com rebase

Um token com rebase altera os saldos das contas de acordo com um processo de ajuste definido pelo contrato.

O saldo exibido por

balanceOf
pode aumentar ou diminuir sem uma transferência comum iniciada pelo titular.

Rebases positivos aumentam os saldos exibidos, enquanto rebases negativos os reduzem.Alguns sistemas usam participações internas e calculam os saldos visíveis por meio de uma taxa de conversão.Aplicativos que presumem que os saldos mudam apenas por transferências podem contabilizar incorretamente tokens com rebase.Os usuários devem entender se o token representa um saldo em unidades fixas ou um direito proporcional variável.

Tokens ERC-20 wrapped

Um token ERC-20 wrapped representa outro ativo por meio de um contrato inteligente ou de um arranjo de custódia.Os usuários podem depositar um ativo subjacente e receber unidades ERC-20 correspondentes.O resgate normalmente queima ou devolve as unidades wrapped e libera o ativo subjacente.O valor do wrapper depende da disponibilidade e da integridade do mecanismo de lastro.Explorações de contratos inteligentes, falhas de custódia ou de bridge, colateral congelado ou contabilidade incorreta podem romper a relação esperada.A conformidade com ERC-20 comprova apenas a compatibilidade da interface, não a existência de lastro suficiente.

Tokens de governança ERC-20

Um token ERC-20 pode ser estendido para representar poder de voto em um sistema de governança on-chain.A votação pode depender dos saldos atuais, dos saldos delegados ou de registros históricos de saldo.

A biblioteca de implementação ERC-20 atual inclui uma extensão de votação ERC-20 para delegação e consultas a votos históricos.

Possuir tokens de governança não necessariamente ativa o poder de voto automaticamente, pois alguns sistemas exigem delegação.A votação por tokens também pode ser influenciada pela concentração da propriedade, ativos emprestados, baixa participação e permissões administrativas.O padrão ERC-20 básico não define regras de governança.

Participações de vault ERC-20

Tokens ERC-20 podem representar participações em um vault tokenizado.Cada participação representa um direito proporcional sobre os ativos gerenciados pelo vault, e não uma unidade fixa do token subjacente.

O padrão de vault tokenizado ERC-4626 estende o ERC-20 com funções padronizadas de depósito, saque, emissão, resgate e conversão.

O valor subjacente das participações pode aumentar ou diminuir conforme o desempenho da estratégia, as taxas, as perdas e as regras contábeis.A compatibilidade com ERC-20, por si só, não explica o que dá lastro a um token de participação nem como ele pode ser resgatado.

Mensagens de erro ERC-20

O padrão ERC-20 original antecede os erros personalizados do Solidity e não define um conjunto padronizado de mensagens de falha.

Tokens diferentes podem retornar

false
, reverter com uma mensagem de texto, reverter com um erro personalizado ou se comportar incorretamente.

O padrão Final ERC-6093 define erros personalizados estruturados para falhas comuns em tokens.

Entre os exemplos estão saldo insuficiente, remetente inválido, destinatário inválido, permissão insuficiente, aprovador inválido e gastador inválido.Erros padronizados podem ajudar carteiras e aplicativos a explicar falhas de forma mais consistente.O ERC-6093 não altera a interface ERC-20 básica nem exige que todos os tokens existentes adotem esses erros.

O ERC-20 usa ERC-165?

O padrão ERC-20 original não exige detecção de interface ERC-165.

Um aplicativo não pode presumir que chamar

supportsInterface
identificará todos os tokens ERC-20.

Em geral, os softwares identificam a compatibilidade por meio da ABI do contrato, do código-fonte verificado, de listas conhecidas de tokens, de dados de registro e de testes diretos das funções.A existência de seletores de função conhecidos não comprova conformidade completa com o padrão.Um contrato malicioso pode imitar partes da interface e, ao mesmo tempo, aplicar comportamentos prejudiciais ou inesperados.

ERC-20 vs. ETH nativo

ETH é o ativo cripto nativo da Ethereum e não é, por si só, um token ERC-20.Contas da Ethereum podem enviar ETH nativo por meio de transferências de valor no nível do protocolo.Saldos ERC-20 existem dentro de contratos inteligentes individuais.O pagamento das taxas de transação da Ethereum exige ETH, mesmo quando o ativo transferido é um token ERC-20, a menos que um sistema separado patrocine ou abstraia a taxa.É possível criar uma representação ERC-20 de ETH para aplicativos que exigem a interface de token, mas esse ativo wrapped continua sendo diferente do ETH nativo.

ERC-20 vs. ERC-721

O ERC-20 representa saldos fungíveis, enquanto o ERC-721 representa tokens não fungíveis identificados individualmente.Uma conta ERC-20 possui uma quantidade de unidades intercambiáveis.Uma conta ERC-721 possui IDs de token distintos.O ERC-20 costuma usar formatação decimal, enquanto um token ERC-721 normalmente é transferido como uma unidade exclusiva inteira.O ERC-721 também inclui verificações de receptor para transferências seguras que não existem no padrão ERC-20 básico.

ERC-20 vs. ERC-1155

O ERC-20 gerencia um tipo de token fungível por interface de contrato.O ERC-1155 permite que um único contrato gerencie vários IDs de token com saldos separados.Esses IDs de token ERC-1155 podem representar ativos fungíveis, semifungíveis ou exclusivos.O ERC-1155 também define operações de transferência em lote e chamadas de retorno para receptores.O padrão mais adequado depende de o projeto precisar de um único ativo fungível ou de vários tipos de ativos gerenciados por um contrato.

Casos de uso comuns do ERC-20

Tokens de valor estável podem usar ERC-20 para representar unidades transferíveis vinculadas a uma reserva, sistema de colateral ou mecanismo algorítmico.Sistemas de governança podem usar saldos ERC-20 ou unidades delegadas como poder de voto.Jogos blockchain podem usar tokens ERC-20 para moedas, recompensas ou recursos intercambiáveis.Vaults e sistemas de staking podem emitir tokens de recibo ERC-20 que representam posições depositadas.Ativos wrapped podem usar ERC-20 para representar direitos sobre ativos mantidos em outro local.Projetos também podem usar o padrão para pontos de fidelidade, créditos de acesso, unidades de pagamento ou créditos financeiros tokenizados.A interface não determina se um uso específico é legal, tem lastro integral, é descentralizado ou é economicamente sustentável.

Riscos de contratos inteligentes ERC-20

Uma implementação ERC-20 pode conter erros na lógica de transferência, permissões, criação, queima, tributação ou controle de acesso.Um administrador privilegiado pode conseguir pausar transferências, congelar saldos, bloquear endereços, emitir tokens, alterar taxas ou atualizar o contrato.Uma atualização de proxy pode alterar o comportamento do token depois que os titulares o adquirirem.Chamadas externas em uma lógica personalizada de token podem criar riscos de reentrância ou negação de serviço.Integrações incorretas podem causar perda de fundos mesmo quando o token se comporta de acordo com seu código.A conformidade com padrões melhora a interoperabilidade, mas não substitui auditorias, testes, revisão do código-fonte e análise de permissões.

Phishing de aprovação de tokens

O phishing de aprovação tenta convencer um usuário a autorizar um gastador malicioso.A interface pode descrever a ação como verificação, conexão, elegibilidade a recompensas ou recuperação de conta.

Depois que a aprovação é confirmada, o gastador pode usar

transferFrom
para retirar tokens dentro do limite autorizado.

Uma assinatura de permit pode conceder autoridade semelhante sem uma transação imediata de aprovação on-chain enviada pela vítima.Os usuários devem verificar o contrato do token, o endereço do gastador, o valor da permissão, a rede e a finalidade de cada aprovação ou permit.Uma frase de recuperação ou chave privada nunca deve ser inserida em um aplicativo para cancelar uma permissão ERC-20.

Golpes de transferência de tokens

Golpistas podem enviar tokens ERC-20 desconhecidos a uma carteira sem a permissão do proprietário.O nome, o símbolo ou os metadados do token podem conter um site ou uma alegação enganosa.Acessar o site anunciado pode levar a aprovações ou assinaturas maliciosas.Atacantes também podem criar endereços visualmente semelhantes aos endereços do histórico de transações de um usuário.Os usuários devem copiar endereços verificados de registros confiáveis, em vez de escolher um destino apenas porque o início e o final do endereço coincidem.Receber um token desconhecido não exige que o proprietário da carteira interaja com ele.

Como os desenvolvedores devem implementar ERC-20

Em geral, os desenvolvedores devem começar com uma implementação revisada e mantida ativamente.

O guia de desenvolvimento ERC-20 atual oferece contratos básicos e extensões para permits, limites, queima, pausa, votação, wrapping, vaults e outras funções.

A criação de oferta deve ser explícita e protegida por controles de acesso adequados.Personalizações de transferência devem preservar as invariantes de saldo, oferta, eventos e permissões.Os desenvolvedores devem testar transferências de valor zero, valores máximos, saldos insuficientes, permissões insuficientes, criação, queima, aprovações e transferências que envolvam endereços incomuns.

Quando esses ativos forem compatíveis, as integrações também devem ser testadas com tokens que retornam

false
, não retornam valor, cobram taxas de transferência, fazem rebase, podem ser pausados ou habilitam chamadas de retorno.

Como os usuários podem avaliar um token ERC-20

O primeiro passo é verificar a rede blockchain e o endereço completo do contrato do token.O segundo é analisar a oferta atual, as alegações sobre oferta máxima e a autoridade de criação.O terceiro é revisar as permissões de administrador, pausa, congelamento, lista de bloqueio, taxas e atualização.O quarto é determinar se o token tem lastro em outro ativo e como funciona o resgate.O quinto é verificar taxas de transferência, comportamento de rebase, restrições e efeitos incomuns na carteira.O sexto é analisar auditorias, código-fonte verificado e histórico de incidentes sem tratar auditorias como garantia.O sétimo é verificar a concentração de titulares, a liquidez disponível e as condições em que a liquidez pode desaparecer.O oitavo é entender a fonte real da demanda ou do rendimento, em vez de confiar na marca do token.O nono é inspecionar as aprovações antes e depois de usar contratos inteligentes desconhecidos.O décimo é testar um token ou contrato novo com uma quantia limitada antes de expor fundos significativos.

Exemplo de transferência ERC-20

Suponha que Alice possua 500 unidades de um token ERC-20 e queira enviar 75 unidades para Bob.A carteira de Alice confirma a blockchain correta, o contrato do token, o endereço do destinatário, o valor e a taxa de transação.

A carteira envia uma transação que chama a função

transfer
do token.

O contrato do token verifica se Alice tem pelo menos 75 unidades.Ele reduz o saldo de Alice para 425 unidades e aumenta o saldo de Bob em 75 unidades.

O contrato emite um evento

Transfer
que contém o endereço de Alice, o endereço de Bob e a quantidade transferida.

Os validadores da Ethereum incluem a transação em um bloco, e os nós verificam de forma independente a alteração de estado resultante.Após a confirmação, carteiras e aplicativos podem consultar os saldos atualizados no contrato do token.

Exemplo de aprovação ERC-20

Suponha que Alice queira que um contrato de vault deposite 100 unidades de um token ERC-20 em seu nome.Primeiro, Alice verifica o endereço do contrato do vault e o token que ele gastará.

Ela chama

approve
e concede ao vault uma permissão de 100 unidades.

O contrato do token registra a permissão e emite um evento

Approval
.

Em seguida, Alice chama a função de depósito do vault.

O vault usa

transferFrom
para transferir 100 unidades de Alice para o vault.

Antes de concluir a transferência, o contrato do token verifica o saldo de Alice e a permissão do vault.Após a transferência, a permissão usada normalmente é reduzida de acordo com a implementação do token.

Erros comuns relacionados ao ERC-20

Um erro comum é identificar um token apenas pelo nome ou símbolo.Outro erro é presumir que todos os tokens ERC-20 usam 18 casas decimais.Um terceiro erro é conceder aprovação ilimitada a um contrato não confiável.Um quarto erro é acreditar que desconectar uma carteira revoga as permissões de token.Um quinto erro é ignorar o resultado booleano ou o comportamento não padronizado das transferências de tokens.Um sexto erro é creditar um depósito com taxa de transferência pelo valor solicitado, em vez do valor recebido.

Um sétimo erro é tratar

totalSupply
como prova de um limite permanente de oferta.

Um oitavo erro é presumir que a conformidade com ERC-20 comprova o lastro do colateral ou o valor de resgate.Um nono erro é assinar um permit sem verificar o gastador, o valor e o prazo.Um décimo erro é tratar uma auditoria ou o código-fonte verificado como garantia de que o token não pode falhar.

Perguntas frequentes

O que significa ERC-20?

ERC-20 é o padrão da Ethereum que define funções e eventos comuns para tokens fungíveis de contratos inteligentes.

ERC-20 é uma criptomoeda?

ERC-20 é um padrão técnico, enquanto um contrato individual que o implementa pode criar um token de criptomoeda.

ERC-20 é a mesma coisa que Ethereum?

Não. Ethereum é a rede blockchain, enquanto ERC-20 é uma interface de contrato inteligente usada por tokens que operam nessa rede.

ETH é um token ERC-20?

Não. ETH é o ativo nativo da Ethereum e não usa a interface de contrato ERC-20.

Tokens ERC-20 são fungíveis?

Sim. Unidades iguais de um mesmo token ERC-20 comum são intercambiáveis de acordo com as regras contábeis do contrato.

Quais são as seis funções principais do ERC-20?

São

totalSupply
,
balanceOf
,
transfer
,
allowance
,
approve
e
transferFrom
.

Quais eventos o ERC-20 define?

O padrão define os eventos

Transfer
e
Approval
.

name, symbol e decimals são obrigatórios?

Não. As três funções de metadados são opcionais na especificação ERC-20 original.

Todos os tokens ERC-20 usam 18 casas decimais?

Não. Dezoito casas decimais são comuns, mas cada token pode usar um valor diferente.

O que uma aprovação ERC-20 faz?

Concede a um gastador permissão para transferir tokens de um proprietário até o limite especificado.

Para que serve transferFrom?

Permite que um gastador autorizado transfira tokens do proprietário para um destinatário.

O que é uma aprovação ERC-20 ilimitada?

É uma permissão definida em um valor máximo extremamente alto, para que o gastador possa continuar transferindo tokens sem aprovações repetidas.

Desconectar uma carteira revoga as aprovações?

Não. As permissões on-chain permanecem ativas até serem alteradas por meio do contrato do token ou deixarem de produzir efeito por outro motivo.

O que é um permit ERC-20?

É uma mensagem assinada opcional do ERC-2612 que cria ou altera uma permissão sem que o proprietário precise enviar diretamente a transação de aprovação.

Tokens ERC-20 podem ser criados?

Sim, quando a implementação inclui um mecanismo de criação e uma parte autorizada ou condição do protocolo pode utilizá-lo.

Tokens ERC-20 podem ser queimados?

Sim, quando a implementação inclui lógica de contrato para destruir unidades de token.

O ERC-20 exige oferta fixa?

Não. A política de oferta é determinada pela implementação de cada token.

Transferências ERC-20 podem cobrar taxas?

Sim. Tokens personalizados podem deduzir taxas de transferência, embora esse comportamento não seja exigido pelo padrão básico.

Um saldo ERC-20 pode mudar sem uma transferência?

Sim. Rebases e outros modelos contábeis personalizados podem alterar os saldos informados sem transferências comuns feitas pelos titulares.

Tokens ERC-20 podem ficar presos em um contrato?

Sim. A função básica de transferência não exige que contratos destinatários confirmem que conseguem gerenciar ou devolver os tokens.

O ERC-20 oferece detecção de interface ERC-165?

Não. A especificação ERC-20 original não exige ERC-165.

O ERC-20 garante que um token tenha lastro?

Não. O padrão não verifica reservas, colateral, direitos de resgate ou solvência.

A conformidade com ERC-20 torna um token seguro?

Não. Um token compatível ainda pode ter permissões perigosas, código defeituoso, lastro fraco, pouca liquidez ou operadores maliciosos.

Como os usuários podem identificar o token ERC-20 correto?

Os usuários devem verificar a rede blockchain e o endereço completo do contrato em uma fonte oficial.

Qual é o principal benefício do ERC-20?

Seu principal benefício é a interoperabilidade por meio de uma interface compartilhada, reconhecida por muitas carteiras cripto e contratos inteligentes.

Conclusão

O ERC-20 é o padrão fundamental da Ethereum para tokens fungíveis de contratos inteligentes.Ele define métodos comuns para consultar oferta e saldos, transferir tokens e conceder autoridade de gasto delegada.

Os eventos

Transfer
e
Approval
permitem que aplicativos cripto monitorem a movimentação de tokens e as permissões.

As funções opcionais de metadados fornecem nome, símbolo e casas decimais do token, mas esses valores não comprovam sua autenticidade.O padrão não determina como a oferta é criada, se os tokens têm lastro, quem controla a administração nem se o ativo tem valor financeiro.Extensões podem adicionar permits assinados, votação, pausa, limites, chamadas de retorno, funcionalidades de vault, erros padronizados e outros recursos.

As aprovações continuam sendo um dos maiores riscos para os usuários, pois um gastador malicioso pode usar uma permissão ativa por meio de

transferFrom
.

Os desenvolvedores devem considerar valores de retorno

false
, tokens sem valor de retorno, taxas de transferência, rebases, chamadas de retorno, casas decimais incomuns e restrições personalizadas.

Os usuários devem verificar endereços de contratos, revisar permissões, entender as autoridades de criação e atualização e investigar o lastro e o modelo econômico do token.A compatibilidade ERC-20 oferece uma linguagem técnica compartilhada, mas não substitui a segurança de contratos inteligentes, a análise cuidadosa de transações ou a pesquisa financeira independente.

Você também pode gostar

BTC ETFs See $679M in Outflows
BTC ETFs See $679M in OutflowsBTC ETFs See $679M in Outflows
Citi sees BTC at $113K. What do institutions see?