ERC-721 é um padrão para tokens não fungíveis (NFTs) na Ethereum. Um padrão é um conjunto publicado de regras. Não fungível significa que cada token é distinto dos demais. O ERC-721 especifica uma interface, que é a lista de funções e eventos que um contrato inteligente disponibiliza. Um contrato inteligente é um programa armazenado em uma blockchain. Para o ERC-721, um token é uma unidade emitida em uma blockchain existente por meio de um contrato inteligente.
O ERC-721 é publicado como uma Ethereum Improvement Proposal (EIP), que é um documento de design para a comunidade Ethereum. O número da proposta é 721, por isso o ERC-721 também é escrito como EIP-721. ERC é a categoria de propostas para padrões de nível de aplicação, ou seja, padrões que aplicações na Ethereum seguem, como os padrões de token.
O código do ERC-721 nomeia sua interface como ERC721. Um token ERC-721 é um token emitido por um contrato que segue o ERC-721.
Uma função é uma operação nomeada que um contrato disponibiliza e que um usuário pode chamar. Um evento é um aviso que um contrato registra na blockchain quando algo muda, para que programas possam acompanhar a mudança. Emitir um evento é registrá-lo.
Uma blockchain é o registro compartilhado de transações, mantido em ordem. Uma transação é uma solicitação que um usuário envia a uma blockchain, como um pedido para mover um token. Um endereço é um identificador em uma blockchain para um usuário ou para um contrato inteligente.
O Que o Padrão ERC-721 Especifica?
O padrão ERC-721 especifica uma interface: as funções que um contrato deve disponibilizar e os eventos que deve emitir. Programas podem então chamar contratos que seguem o ERC-721 da mesma forma.
O ERC-721 também exige a detecção de interface por meio do ERC-165, que é um padrão que permite a um contrato declarar quais interfaces ele suporta.
O ERC-721 descreve duas extensões opcionais. A extensão de metadados adiciona funções que retornam um nome e um símbolo para os tokens de um contrato, além de um link para cada ID de token, e uma extensão de enumeração adiciona funções que listam os tokens que um contrato rastreia.
O ERC-721 é um padrão de NFT, e foi escrito para a Ethereum. Outras blockchains e outros padrões podem funcionar de forma diferente do ERC-721.
Um contrato que segue o ERC-721 diferencia seus tokens pelo ID do token, um número que o contrato atribui a cada token. O endereço do contrato que rastreia os tokens, junto com um ID de token, identifica um único token, e o ERC-721 exige que um ID de token permaneça o mesmo enquanto o contrato existir.
ERC-721 vs ERC-20: Como os Dois Padrões Diferem?
O ERC-721 e o ERC-20 diferem no que um contrato rastreia, no que uma transferência nomeia e no que uma aprovação cobre. O ERC-20 é um padrão para tokens fungíveis, ou seja, tokens cujas unidades são intercambiáveis, de modo que uma unidade seja igual à outra. O ERC-721 é um padrão para tokens não fungíveis, que um contrato diferencia pelo ID do token, de modo que trocar dois deles não é uma troca de igual para igual.
- Um contrato ERC-20 registra quantas unidades cada endereço possui, enquanto um contrato ERC-721 registra qual endereço controla cada ID de token.
- Uma transferência ERC-20 nomeia uma quantidade de tokens, enquanto uma transferência ERC-721 nomeia um ID de token.
- Uma aprovação ERC-20 cobre uma quantidade que outro endereço pode transferir, enquanto uma aprovação ERC-721 cobre um único ID de token ou, quando nomeia um operador, todos os tokens que um endereço controla no mesmo contrato. Um operador é um endereço que o endereço que controla os tokens autorizou a transferir todos eles.
Quais Funções e Eventos o ERC-721 Define?
Esta tabela lista, por nome, as funções e eventos que o ERC-721 define, junto com a função de detecção de interface do ERC-165, e descreve o que cada um faz.
Qual Função Verifica o Contrato Receptor?
A função safeTransferFrom executa uma verificação do destinatário depois de mover um token. Quando o endereço receptor é um contrato inteligente, o contrato ERC-721 chama uma função nele chamada onERC721Received, que é a função receptora. O contrato receptor disponibiliza essa função, e ela retorna uma resposta específica, definida pelo ERC-721, que sinaliza ao contrato ERC-721 que o contrato receptor aceita a transferência. Se o contrato receptor retornar qualquer outra coisa, a transação é cancelada, o que o ERC-721 chama de reversão (revert).
A função transferFrom não chama uma função receptora. O ERC-721 deixa a verificação de que o endereço receptor pode receber tokens a cargo de quem chama a função, ou seja, de quem envia a transação que a chama. Um token enviado a um contrato que não disponibiliza a função receptora pode ser perdido.
Como Funcionam as Aprovações e os Operadores?
Uma aprovação permite que outro endereço transfira um token. A função approve nomeia um endereço para um único ID de token, e getApproved retorna esse endereço. O ERC-721 determina que o endereço aprovado seja redefinido para nenhum quando o token é transferido.
Um operador é um endereço que foi autorizado, por meio de setApprovalForAll, a transferir todos os tokens que outro endereço controla no mesmo contrato. O ERC-721 exige que um contrato permita mais de um operador para cada endereço que controla tokens, e isApprovedForAll retorna se um endereço é operador de outro endereço.
Segundo o ERC-721, uma transferência pode ser solicitada pelo endereço que controla o token, por um operador desse endereço ou pelo endereço aprovado para aquele ID de token.
O Que a Extensão Opcional de Metadados Adiciona?
A extensão opcional de metadados do ERC-721 adiciona três funções a um contrato: name, symbol e tokenURI. Metadados são dados que descrevem os tokens, e essas três funções os retornam.
A função name retorna um nome para os tokens que um contrato rastreia, e symbol retorna um nome abreviado para eles.
A função tokenURI retorna uma URI para um ID de token. Uma URI, abreviação de identificador uniforme de recurso (uniform resource identifier), é um link. Um contrato que não inclui essa extensão não tem URI.
O ERC-721 determina que a URI retornada por tokenURI pode apontar para um arquivo JSON, que é um formato de texto para dados estruturados. O arquivo pode conter os campos nome, descrição e imagem.
O ERC-721 permite que um contrato altere a URI que retorna para um ID de token, de modo que o mesmo ID de token possa, posteriormente, levar a um arquivo diferente. O ERC-721 não especifica onde o arquivo apontado pela URI é armazenado.
O Que o ERC-721 Deixa a Cargo de Cada Contrato?
Em outubro de 2026, o ERC-721 não define o conteúdo de um token, quaisquer direitos ligados a ele, onde os arquivos de um token são armazenados, como os tokens são criados ou destruídos, nem o status legal de um token. O verbete do glossário Token não fungível (NFT) explica o que o registro de um token, ou seja, as informações que um contrato mantém sobre cada token, deixa de fora.
Contratos que seguem o ERC-721 ainda podem diferir em comportamento. O ERC-721 lista os casos em que uma transferência deve falhar, e permite que um contrato cancele uma transferência em outros casos, por exemplo, enquanto as transferências estão pausadas. Um contrato pode, portanto, recusar uma transferência por motivos que o ERC-721 não lista.
5 de janeiro de 2026











