Escrito por Pablo Gómez
Founder & CEO da Metlabs · Revisado em 11 de outubro de 2026
O ERC-165 resolve a descoberta de capacidades entre contratos com uma única função, supportsInterface(bytes4), que retorna se o contrato implementa uma interface específica. O interface ID é calculado como o XOR dos seletores de função (os primeiros 4 bytes do keccak256 de cada assinatura) dessa interface. O seletor de supportsInterface é 0x01ffc9a7, que também é o interface ID do próprio ERC-165. Um contrato em conformidade deve retornar true para 0x01ffc9a7, false para 0xffffffff e resolver a chamada em menos de 30.000 gas, o que permite consultá-lo com segurança via STATICCALL.
Sem esse mecanismo, um contrato não consegue saber com certeza se outro implementa uma interface antes de interagir. Por isso é dependência explícita de padrões de uso massivo como ERC-721 (NFT) e ERC-1155 (multi-token), que o utilizam para anunciar seu suporte, e dos padrões de ativos regulados ERC-1400 e ERC-3643, que apoiam nele seus fluxos de compliance e onboarding. Diferentemente das famílias de security token, o ERC-165 está em status Final e é um dos padrões fundacionais do ecossistema.
Os autores do EIP incluem Christian Reitwiessner, Nick Johnson, Fabian Vogelsteller, Jordi Baylina, Konrad Feldmeier e William Entriken. A implementação canônica é a da OpenZeppelin Contracts (ERC165 / IERC165), usada por praticamente todo o ecossistema. Wallets e exploradores recorrem a supportsInterface para distinguir, por exemplo, se um contrato é uma coleção NFT (721) ou um contrato multi-token (1155).
Também conhecido como
- ERC165
- Standard Interface Detection





