ERC-777 Explicado: O padrão de token moderno com ganchos (hooks)

LeeMaimaiLeeMaimai
/16 de out. de 2025
ERC-777 Explicado: O padrão de token moderno com ganchos (hooks)

Principais Resultados

• O ERC-777 resolve limitações do ERC-20 com ganchos programáveis e transferências baseadas em operadores.

• Ganchos permitem que contratos reajam a transferências de tokens, aumentando a composibilidade e segurança.

• A adoção do ERC-777 é seletiva, sendo mais vantajosa em contextos que requerem lógica de transferência mais rica.

• Considerações de segurança são cruciais, especialmente em relação a reentrância e design de protocolo.

• O uso de bibliotecas auditadas e práticas de engenharia rigorosas é recomendado para implementações seguras.

Claro, aqui está a tradução do artigo para português, mantendo a formatação Markdown e a estrutura do original:

O ERC-777 é um padrão de token Ethereum mais recente, projetado para resolver limitações de longa data do ERC-20, ao mesmo tempo que introduz "ganchos" programáveis para fluxos de token mais ricos. Se você tem acompanhado as conversas de desenvolvedores em torno de composibilidade, aprovações mais seguras e automação de protocolo, o ERC-777 se encontra na intersecção dessas necessidades. Este artigo explica como o ERC-777 funciona, por que ele existe, onde ele se destaca, as compensações de segurança a serem observadas e como usuários e construtores podem abordá-lo em 2025.

O problema que o ERC-777 se propôs a resolver

O ERC-20 tornou-se o padrão de token fungível padrão, mas ele tem pontos problemáticos notáveis:

  • Aprovações são desajeitadas e propensas a erros (por exemplo, esquecer de redefinir permissões).
  • Contratos não podem reagir automaticamente quando os tokens chegam; eles precisam de interações do tipo "puxar" (pull).
  • Semânticas de transferência são limitadas, tornando fluxos complexos (taxas, callbacks, fluxos de várias etapas) mais difíceis.

O ERC-777 tenta modernizar isso oferecendo:

  • Ganchos (hooks) de envio/recebimento integrados para que os contratos possam reagir a transferências dentro da mesma transação.
  • Transferências baseadas em operadores, que simplificam o gerenciamento de tokens para custodiantes e serviços.
  • Compatibilidade retroativa com interfaces ERC-20 para facilitar a adoção pelo ecossistema.

Para uma especificação formal, consulte o padrão canônico ERC-777 no site das Propostas de Melhoria do Ethereum (Ethereum Improvement Proposals): EIP-777. Para situá-lo dentro do ecossistema mais amplo de tokens, a documentação para desenvolvedores do Ethereum sobre padrões de tokens fornece contexto e links para EIPs relacionadas: Visão geral dos padrões de tokens do Ethereum.

Como o ERC-777 funciona: ganchos e operadores

Duas ideias centrais impulsionam o ERC-777.

  1. Ganchos (Hooks)
  • tokensToSend: Um gancho do lado do remetente chamado antes que os tokens se movam.
  • tokensReceived: Um gancho do lado do receptor chamado após os tokens chegarem.
  • Estes são opcionais e descobertos através do registro global de interfaces, EIP-1820.

Usando ganchos, os contratos podem implementar lógica de negócios durante as transferências: auto-staking, divisão de taxas, registro, controle de acesso ou rejeição de tokens inesperados. Ganchos aumentam a composibilidade e reduzem a necessidade de fluxos separados de "aprovar e chamar".

  1. Operadores
  • Um operador é autorizado a transferir tokens em nome de um titular, semelhante a um custodiante delegado.
  • Operadores padrão podem ser definidos por um token, e os usuários podem revogá-los a qualquer momento.
  • Operadores no ERC-777 são um modelo mais explícito e flexível em comparação com as permissões (allowances) do ERC-20.

Na prática, a maioria das equipes confia em bibliotecas auditadas. A OpenZeppelin fornece uma implementação amplamente utilizada com APIs claras e salvaguardas: Contratos ERC-777 da OpenZeppelin.

Um exemplo mínimo para desenvolvedores

Abaixo está um esquema de um contrato receptor usando tokensReceived via EIP-1820. Sempre use bibliotecas verificadas e realize auditorias para código de produção.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import "@openzeppelin/contracts/token/ERC777/IERC777.[sol](https://onekey.so/blog/pt/ecosystem/best-sol-wallets-in-2025-ultimate-guide-to-software-hardware-options/)";
import "@openzeppelin/contracts/interfaces/IERC1820Registry.[sol](https://onekey.so/blog/pt/ecosystem/best-sol-wallets-in-2025-ultimate-guide-to-software-hardware-options/)";

[contract](https://onekey.so/blog/pt/ecosystem/what-is-a-smart-contract/) ExampleReceiver {
    IERC1820Registry constant _ERC1820 =
        IERC1820Registry(0x1820a4B7618BdE71Dce8cdc73aAB6C95905faD24);

    bytes32 constant TOKENS_RECIPIENT_INTERFACE_HASH =
        keccak256("ERC777TokensRecipient");

    event Received(address operator, address from, uint256 amount, bytes data, bytes operatorData);

    constructor() {
        _ERC1820.setInterfaceImplementer(address(this), TOKENS_RECIPIENT_INTERFACE_HASH, address(this));
    }

    // Gancho ERC777 tokensReceived
    function tokensReceived(
        [address](https://onekey.so/blog/pt/ecosystem/what-is-a-crypto-wallet-address/) operator,
        [address](https://onekey.so/blog/pt/ecosystem/what-is-a-crypto-wallet-address/) from,
        [address](https://onekey.so/blog/pt/ecosystem/what-is-a-crypto-wallet-address/) /*to*/,
        uint256 amount,
        bytes calldata data,
        bytes calldata operatorData
    ) external {
        // Lógica personalizada, por exemplo, registrar depósito ou acionar contabilidade interna
        emit Received(operator, from, amount, data, operatorData);
    }
}

Principal aprendizado: os ganchos permitem que os contratos "escutem" movimentos de tokens sem chamadas de função separadas, reduzindo o atrito e fazendo com que fluxos complexos pareçam nativos.

Considerações de segurança: reentrância e design de protocolo

Os ganchos são poderosos, mas introduzem risco de reentrância se os contratos não forem projetados de forma defensiva. No início do DeFi, uma série de incidentes destacou como callbacks de tokens poderiam interagir inesperadamente com protocolos que assumiam comportamento semelhante ao ERC-20. Essas lições impulsionaram melhores práticas que permanecem relevantes hoje:

  • Favorça "checks-effects-interactions" em funções que alteram o estado.
  • Use guardas de reentrância em caminhos de chamada externa.
  • Projete cuidadosamente a lógica de pool/contabilidade para ser robusta contra a execução de callbacks durante uma transferência.
  • Considere um modelo de "puxar" (pull) para operações sensíveis quando possível.
  • Evite assumir que as transferências são isentas de efeitos colaterais.

Mesmo que os exploits específicos da era Uniswap v1 sejam história, o princípio permanece: ganchos tornam as transferências de tokens ativas, não passivas. Auditorias modernas e bibliotecas evoluíram de acordo. Para uma referência fundamental sobre o padrão e suas notas de segurança, consulte EIP-777. Para estudar padrões e salvaguardas bem mantidos, consulte a documentação do ERC-777 da OpenZeppelin.

Interoperabilidade e migração do ERC-20

Tokens ERC-777 são geralmente retrocompatíveis com interfaces ERC-20, mas as suposições diferem:

  • Transferências podem acionar ganchos, que podem ter efeitos colaterais.
  • Operadores substituem ou complementam permissões (allowances), mudando como os serviços interagem.
  • Carteiras (wallets) e dApps devem lidar corretamente com metadados e fluxos baseados em ganchos.

Algumas equipes se apegam ao ERC-20 com melhorias como EIP-2612 permit (aprovações sem gás), dada a familiaridade generalizada do ecossistema. Outras adotam o ERC-777 onde a recepção programável ou a semântica de operador melhoram materialmente a experiência do usuário ou a lógica do protocolo.

Cenário de 2025: onde os ganchos se encaixam

Embora o ERC-20 ainda domine os tokens fungíveis, os ganchos influenciaram o design em outros lugares. Um exemplo claro é a arquitetura do Uniswap v4, que adota "ganchos" programáveis no nível do pool de liquidez para habilitar recursos como taxas dinâmicas e lógica personalizada, tornando o protocolo mais composível por design. Para contexto sobre essa evolução, veja a visão geral do Uniswap v4 e a discussão sobre ganchos: Anúncio e ganchos do Uniswap v4.

No nível do token, a adoção do ERC-777 permanece seletiva — particularmente em contextos onde callbacks automáticos e semântica de operador entregam valor tangível, como:

  • Fluxos de custódia ou de provedores de serviços que se beneficiam de transferências de operadores.
  • Programas de fidelidade on-chain ou pagamentos contínuos que reagem ao recebimento.
  • Camadas de infraestrutura que desejam callbacks nativos de token para contabilidade ou coleta de taxas.

Enquanto isso, as redes de Camada 2 continuam a melhorar o rendimento e os perfis de custo, tornando a lógica de ciclo de vida de token mais complexa viável. Esse ambiente torna a programabilidade do ERC-777 uma opção oportuna para equipes que precisam de semântica de transferência mais rica, mas podem investir em engenharia de segurança robusta.

Melhores práticas para construtores

  • Use bibliotecas auditadas e opte por implementações conhecidas. Comece com o ERC-777 da OpenZeppelin.
  • Projete a lógica de ganchos para modos de falha: rejeite tokens inesperados, valide a origem e mantenha verificações de invariância.
  • Documente claramente os operadores padrão; forneça caminhos de revogação simples para os usuários.
  • Aplique proteções contra reentrância, especialmente em torno de tokensReceived, e evite chamadas externas durante etapas críticas de contabilidade, a menos que seja estritamente necessário.
  • Considere se você realmente precisa de ganchos. Se não, ERC-20 mais EIP-2612 permit pode simplificar a integração e as expectativas do usuário.
  • Teste em carteiras e dApps que podem tratar o ERC-777 de forma diferente. Use o registro EIP-1820 corretamente para registrar implementadores.

Dicas práticas para usuários

  • Entenda que tokens ERC-777 podem acionar lógica quando chegam a certos contratos. Isso geralmente é benéfico, mas muda as suposições em comparação com as transferências "passivas" do ERC-20.
  • Revise o que você está aprovando e para quem. Se um token usa operadores ou callbacks, certifique-se de confiar no código e na reputação do contrato receptor.
  • Prefira carteiras que exibam detalhes claros dos métodos do contrato, não apenas "transferir" ou "enviar". Se algo parecer desconhecido ou incluir campos de dados arbitrários, pause e verifique.

Quando considerar o ERC-777

O ERC-777 faz sentido quando:

  • Você precisa de comportamento de token acionado por eventos no momento da transferência (por exemplo, depósito automático, roteamento de taxas, controle de acesso personalizado).
  • Operadores simplificam significativamente seu modelo de serviço ou de custódia.
  • Você está comprometido com engenharia de segurança rigorosa e auditorias para lidar com semânticas baseadas em callbacks de forma segura.

O ERC-777 pode ser menos ideal quando:

  • Simplicidade e ampla compatibilidade com o ecossistema são primordiais.
  • Você pode atingir seus objetivos via ERC-20 mais permit, ou mecânicas de protocolo de nível superior (por exemplo, controladores específicos de aplicativos sem ganchos de token).

Uma perspectiva de carteira de hardware

Para padrões de token com comportamento mais rico e possíveis efeitos colaterais, a introspecção clara de transações e a assinatura offline são inestimáveis. A OneKey é uma carteira de hardware de código aberto que enfatiza confirmações transparentes no dispositivo e amplo suporte a tokens EVM. Se você interage rotineiramente com padrões de token avançados ou protocolos DeFi que utilizam callbacks, usar uma carteira de hardware ajuda a garantir que você verifique exatamente o que está assinando e reduz a exposição a contratos maliciosos. Em outras palavras, a sofisticação do ERC-777 torna o gerenciamento seguro de chaves e confirmações explícitas e legíveis ainda mais importantes — áreas onde um dispositivo como a OneKey pode fornecer tranquilidade significativa.

Conclusão

O ERC-777 introduz recursos modernos de token — ganchos e operadores — que desbloqueiam fluxos de token mais ricos e composíveis no Ethereum e em cadeias EVM. Seu poder vem com responsabilidade: ganchos são ativos, não passivos, e exigem programação defensiva e UX cuidadosa. Em 2025, o conceito de ganchos influenciou o design do protocolo além dos tokens, como visto no Uniswap v4, enquanto o próprio ERC-777 permanece uma escolha direcionada para equipes que realmente se beneficiam da recepção programável e da semântica de operador. Se você adotar o ERC-777 ou se apegar a padrões ERC-20 aprimorados, combine boas práticas de engenharia com fluxos de trabalho seguros para o usuário — e considere a assinatura com suporte de hardware — para que sua lógica de token seja poderosa e segura.

Proteja sua jornada criptográfica com o OneKey

View details for Comprar OneKeyComprar OneKey

Comprar OneKey

A carteira de hardware mais avançada do mundo.

View details for Baixar aplicativoBaixar aplicativo

Baixar aplicativo

Alertas de golpe. Todas as moedas suportadas.

View details for OneKey SifuOneKey Sifu

OneKey Sifu

Clareza Cripto—A uma chamada de distância.

Continue lendo