O que é ERC-721?
ERC-721 é um padrão de tokens da Ethereum para criar e gerenciar tokens não fungíveis, conhecidos como NFTs.Cada token ERC-721 tem um ID de token exclusivo, que o diferencia de todos os outros tokens gerenciados pelo mesmo contrato inteligente.A especificação oficial do ERC-721 define regras padronizadas para rastrear a propriedade, transferir tokens e conceder a outros endereços permissão para gerenciar NFTs.
O ERC-721 é classificado como um padrão Final Ethereum Request for Comments.Ele foi criado porque os padrões de tokens fungíveis não conseguem representar com precisão ativos que precisam ser identificados e rastreados individualmente.Um token ERC-721 pode representar um item colecionável digital, item de jogo, credencial de associação, propriedade virtual, ingresso para evento, posição financeira, ativo semelhante a um domínio ou registro vinculado a um item físico.O padrão define o comportamento de propriedade e transferência na blockchain, mas não estabelece automaticamente direitos autorais, propriedade legal, autenticidade, valor financeiro ou direitos sobre um ativo externo.O que significa ERC?
ERC significa Ethereum Request for Comments.Um ERC descreve um padrão técnico que aplicativos e contratos inteligentes podem seguir para melhorar a interoperabilidade no ecossistema Ethereum.ERC-721 é o número de identificação atribuído ao padrão de tokens não fungíveis.Esse número não descreve a oferta, o preço, o endereço na blockchain ou a data de lançamento do token.Um contrato que implementa ERC-721 pode adicionar extensões opcionais e funções personalizadas, desde que seu comportamento obrigatório continue compatível com o padrão.Por que o ERC-721 foi criado?
Ativos fungíveis são intercambiáveis porque, em geral, uma unidade tem a mesma função que outra unidade do mesmo ativo.Ativos não fungíveis precisam ser rastreados separadamente, pois cada unidade pode ter características, histórico, raridade, direitos ou valor diferentes.O ERC-721 oferece às carteiras e aos aplicativos um método comum para identificar o proprietário de cada token exclusivo.Ele também padroniza transferências, aprovações, permissões de operadores e registros de eventos relacionados à propriedade.Sem um padrão compartilhado, cada contrato de NFT poderia exigir uma integração diferente.As funções compartilhadas permitem que carteiras de uso geral, exploradores de blockchain, indexadores, jogos, protocolos de empréstimo e outros aplicativos cripto interajam com várias coleções de NFTs.Como funciona o ERC-721
Um contrato inteligente ERC-721 armazena ou calcula o proprietário associado a cada ID de token válido.O contrato também rastreia quantos NFTs cada endereço possui naquela coleção.Quando ocorre uma transferência autorizada, o contrato remove a propriedade do remetente e atribui o ID do token ao destinatário.O contrato emite um evento padronizado
O que é um ID de token?
Um ID de token é um número inteiro sem sinal que identifica exclusivamente um NFT dentro de um contrato ERC-721.O mesmo ID de token pode existir em vários contratos diferentes sem representar o mesmo ativo.Portanto, um NFT é identificado em conjunto por sua rede blockchain, endereço do contrato e ID do token.Por exemplo, o ID de token 50 em um contrato não tem relação com o ID de token 50 em outro contrato.Os IDs de token não precisam começar em zero nem seguir uma sequência simples crescente.Uma coleção pode usar IDs sequenciais, IDs atribuídos aleatoriamente, identificadores codificados ou outro sistema compatível com seu contrato.Os aplicativos devem consultar o contrato em vez de presumir que todos os números de um intervalo correspondem a NFTs existentes.O que torna o ERC-721 não fungível?
Cada token ERC-721 é rastreado como um objeto individual na blockchain.Dois NFTs da mesma coleção podem ter metadados, históricos, propriedades, raridade e valores de mercado diferentes.Ser proprietário de um ID de token não confere ao titular a propriedade de outro ID de token.Um token ERC-721 padrão é transferido como um token inteiro, não como uma quantidade decimal.A propriedade econômica fracionada exige um contrato inteligente ou uma estrutura de token separada, fora do padrão ERC-721 básico.Chamar dois NFTs de não fungíveis não garante que tenham conteúdo visual diferente, pois IDs de token distintos podem apontar para metadados semelhantes ou idênticos.Principais funções do ERC-721
O padrão básico inclui funções para verificar a propriedade, transferir NFTs e gerenciar permissões de transferência.As funções obrigatórias incluem
A função balanceOf
A função
A função ownerOf
A função
O endereço retornado por
A função transferFrom
A função
Um NFT transferido para um contrato incompatível por meio de
As funções safeTransferFrom
O ERC-721 inclui duas versões de
Quando o destinatário é um contrato inteligente, o contrato do NFT chama a função
O que é um receptor ERC-721?
Um receptor ERC-721 é um contrato inteligente que implementa
Um receptor compatível retorna o seletor esperado, geralmente representado como
A documentação atual da implementação ERC-721 inclui uma interface de receptor e uma ferramenta básica para contratos que precisam aceitar NFTs.
Antes de registrar um depósito ou conceder um benefício, o receptor deve verificar qual contrato de NFT acionou a chamada de retorno.Aprovações ERC-721
As aprovações ERC-721 permitem que o proprietário de um NFT delegue autoridade de transferência sem transferir imediatamente a propriedade.Uma aprovação específica de token se aplica a um único ID de token.Uma aprovação de operador se aplica a todos os NFTs que um endereço possui naquele contrato.As aprovações são registradas on-chain e podem ser usadas sem outra assinatura do proprietário enquanto permanecerem válidas.Os usuários devem tratar solicitações de aprovação de NFT como permissões financeiras sensíveis.Aprovar um endereço não confiável pode permitir que a parte aprovada transfira NFTs valiosos.A função approve
A função
A função getApproved
A função
Um aplicativo que verifica se uma conta pode transferir um NFT também precisa considerar
A função setApprovalForAll
A função
A função isApprovedForAll
A função
A função retorna
Eventos ERC-721
O ERC-721 define os eventos
O evento Transfer
O evento
Os aplicativos podem reconstruir grande parte do histórico de propriedade de um NFT indexando eventos
Os eventos Approval e ApprovalForAll
O evento
O evento
Detecção de interface ERC-165
Todo contrato ERC-721 compatível deve oferecer suporte à detecção de interface ERC-165.O padrão ERC-165 define a função
O ID da interface principal do ERC-721 é
Um contrato compatível deve retornar
Metadados ERC-721
O ERC-721 inclui uma extensão opcional de metadados.A extensão adiciona as funções
O ID de interface ERC-165 dessa extensão é
Como funciona tokenURI
A função
Eventos de atualização de metadados
O próprio ERC-721 não oferece um evento padronizado para cada alteração de metadados.A extensão opcional de atualização de metadados ERC-4906 adiciona os eventos
O ID de interface do ERC-4906 é
Enumeração ERC-721
A extensão opcional de enumeração permite consultar on-chain a oferta de NFTs e listas de proprietários.O ID de interface dessa extensão é
Ela adiciona
A função
Em vez disso, aplicativos off-chain podem reconstruir a propriedade por meio de eventos
Criação de tokens ERC-721
A criação (mint) gera um novo ID de token válido e atribui seu primeiro proprietário.O padrão ERC-721 básico não define quem pode criar tokens nem como a criação deve ser solicitada.Uma coleção pode permitir a criação pública, restringi-la a funções autorizadas, exigir pagamento, usar listas de permissões ou criar todos os NFTs durante a implantação.Um mint normalmente emite um evento
Queima de tokens ERC-721
A queima remove um NFT dos registros de propriedade válida.A interface principal do ERC-721 não exige uma função pública de burn.Uma coleção pode permitir que proprietários, operadores aprovados, administradores ou a lógica do protocolo queimem tokens.Uma queima normalmente emite um evento
Royalties ERC-721
Os royalties de criadores não fazem parte do padrão ERC-721 básico.O padrão opcional de royalties para NFTs ERC-2981 oferece um método para informar o destinatário dos royalties e o valor sugerido com base no preço de venda.
O ERC-2981 comunica informações sobre royalties, mas não obriga todas as transferências ou aplicativos a pagá-los.Uma coleção pode definir configurações padrão ou específicas por token para royalties, quando sua implementação oferece esse suporte.Os destinatários e as taxas de royalties podem ser alteráveis se o contrato conceder essa autoridade a um administrador.Os usuários não devem presumir que toda transferência ERC-721 inclui um pagamento obrigatório ao criador.ERC-721 vs. ERC-20
O ERC-20 foi projetado para saldos de tokens fungíveis, enquanto o ERC-721 foi projetado para NFTs identificados individualmente.Uma conta ERC-20 pode deter uma quantidade fracionável de um token.Uma conta ERC-721 possui IDs de token distintos.A função
ERC-721 vs. ERC-1155
O ERC-721 representa IDs de token de propriedade individual por meio de um contrato de coleção de NFTs.O padrão multitoken ERC-1155 permite que um contrato gerencie vários IDs de token com saldos de quantidade separados.
Um ID de token ERC-1155 pode representar um ativo fungível, semifungível ou exclusivo.Um endereço pode possuir várias unidades de um mesmo ID de token ERC-1155.No modelo padrão, um ID de token ERC-721 válido tem um único proprietário.O ERC-1155 também oferece suporte a transferências em lote padronizadas, enquanto as transferências ERC-721 normalmente processam um NFT por vez.O padrão mais adequado depende dos requisitos de propriedade e inventário do projeto.Casos de uso do ERC-721
Coleções de arte digital podem usar tokens ERC-721 para registrar a propriedade de obras identificadas individualmente.Jogos blockchain podem usar NFTs para personagens, terrenos, equipamentos ou outros itens exclusivos.Sistemas de associação podem usar NFTs para representar direitos de acesso ou status em uma comunidade.Aplicativos financeiros podem tokenizar posições de dívida exclusivas, apólices de seguro, posições de liquidez ou créditos.Sistemas de eventos podem emitir ingressos identificados individualmente, com regras de transferência controladas.Projetos podem vincular NFTs a produtos físicos, embora o contrato inteligente não consiga verificar por conta própria a posse ou a propriedade legal do item físico.Um token ERC-721 também pode representar uma credencial, mas dados pessoais sensíveis não devem ser armazenados abertamente em uma blockchain pública.Propriedade de NFT vs. direitos autorais
Ser proprietário de um token ERC-721 significa que o contrato na blockchain reconhece o endereço do proprietário para aquele ID de token.Isso não transfere automaticamente os direitos autorais da obra de arte ou mídia associada.Os direitos autorais e de uso comercial dependem da licença do criador, do contrato de venda e da legislação aplicável.Um projeto pode conceder amplos direitos comerciais, uso pessoal limitado ou nenhum direito adicional de propriedade intelectual.Os metadados também podem apontar para conteúdo que o emissor do token não tinha permissão para usar.Os compradores devem consultar os termos legais do projeto, em vez de presumir que a propriedade do token concede todos os direitos possíveis.Riscos de aprovação ERC-721
Solicitações de aprovação maliciosas representam um grande risco de segurança para quem possui NFTs.Um aplicativo de phishing pode solicitar
Transferência segura e risco de reentrância
Uma transferência segura de NFT chama código externo quando o destinatário é um contrato inteligente.O destinatário pode chamar de volta o aplicativo original antes que a primeira operação seja concluída.Esse comportamento pode criar vulnerabilidades de reentrância em contratos de mint, venda, empréstimo, staking, custódia ou saque.As diretrizes oficiais de segurança do Solidity recomendam concluir as verificações e alterações importantes de estado antes das interações externas, quando a lógica pretendida permitir.
Os desenvolvedores também devem considerar a reentrância entre funções, pois um receptor malicioso pode chamar outra função exposta.As chamadas de retorno do receptor devem ser testadas com contratos hostis, em vez de serem tratadas como simples notificações.Riscos de segurança dos metadados
O conteúdo visível de um NFT pode depender de dados que estão fora da blockchain.Um servidor externo pode ficar indisponível, alterar sua resposta ou remover um arquivo.Um URI mutável pode apontar para outro conteúdo após a compra.Os metadados podem conter descrições enganosas, obras de arte copiadas, links externos ocultos ou formatos de arquivo inseguros.O armazenamento descentralizado pode melhorar a persistência, mas o conteúdo ainda depende de disponibilidade contínua e de identificadores corretos.Metadados totalmente on-chain reduzem a dependência de hospedagem externa, mas podem aumentar os custos de implantação e atualização.Riscos de autenticidade do contrato
Qualquer pessoa pode implantar um contrato ERC-721 com nome, símbolo, imagem ou ID de token conhecidos.A compatibilidade com a interface não comprova que uma coleção seja autêntica.Os usuários devem verificar a rede blockchain e o endereço completo do contrato em uma fonte oficial do projeto.A publicação de código-fonte verificado demonstra correspondência com o código, mas não garante conduta comercial honesta nem um modelo econômico seguro.Também devem ser analisados o histórico dos tokens, as declarações do criador, as permissões administrativas e os controles de metadados.Contratos ERC-721 atualizáveis
Um contrato ERC-721 pode usar um proxy que permite alterar sua lógica após a implantação.Atualizações podem corrigir erros ou adicionar recursos.Elas também podem alterar o comportamento de criação, transferência, aprovação, metadados, royalties, pausa ou queima.Uma autoridade de atualização comprometida pode instalar uma lógica maliciosa que afete a propriedade dos NFTs.Os usuários devem identificar quem controla as atualizações, quantas assinaturas são exigidas e se há um período de espera.Uma coleção descrita como descentralizada ainda pode ter funções administrativas poderosas.Como os desenvolvedores podem implementar ERC-721
Os desenvolvedores devem usar uma implementação revisada e mantida ativamente, a menos que um projeto personalizado seja necessário.O guia de desenvolvimento ERC-721 atual descreve implementações básicas e extensões opcionais para metadados, enumeração, queima, pausa, royalties, votação e outros usos.
O acesso à criação de tokens deve corresponder às regras de oferta documentadas da coleção.Transferências e aprovações devem rejeitar chamadas não autorizadas e endereços inválidos.O mint seguro deve ser usado quando um token puder ser emitido diretamente para um contrato inteligente.Os desenvolvedores devem testar receptores maliciosos, reentrância, IDs de token inválidos, remoção de aprovações, permissões de operadores, queimas e detecção de interfaces.As funções administrativas devem usar controles de acesso claros e emitir eventos úteis.Como avaliar um NFT ERC-721
O primeiro passo é verificar a rede, o endereço do contrato e o ID do token.O segundo é confirmar se o contrato oferece suporte à interface principal ERC-721.O terceiro é verificar o proprietário atual e o histórico de transferências.O quarto é revisar as aprovações específicas do token e as aprovações para toda a coleção.O quinto é verificar como os metadados e as mídias vinculadas são armazenados.O sexto é identificar as autoridades de criação, queima, pausa, congelamento e atualização.O sétimo é determinar se as alegações sobre oferta e raridade podem ser verificadas on-chain.O oitavo é analisar auditorias e código-fonte sem tratá-los como garantias.O nono é entender quais direitos legais ou comerciais acompanham o NFT.O décimo é testar contratos desconhecidos com uma transação de baixo valor antes de arriscar ativos valiosos.Exemplo de transferência ERC-721
Suponha que Alice possua o ID de token 101 em uma coleção ERC-721.A função
A carteira dela chama
O contrato atualiza os registros de propriedade e chama
Se o seletor correto for retornado, a transferência é concluída e o contrato do NFT emite um evento
Erros comuns relacionados ao ERC-721
Um erro comum é presumir que o nome de uma coleção identifica exclusivamente um NFT.Outro erro é conceder acesso de operador a toda a coleção sem verificar o endereço do operador.Um terceiro erro é acreditar que desconectar uma carteira remove aprovações on-chain.Um quarto erro é usar
Perguntas frequentes
O que significa ERC-721?
ERC-721 é o padrão da Ethereum que define regras de propriedade, transferência, aprovação e interface para tokens não fungíveis.ERC-721 é a mesma coisa que NFT?
ERC-721 é um padrão técnico para NFTs, enquanto NFT é um termo mais amplo que pode incluir tokens criados de acordo com outros padrões.ERC-721 é fungível?
Não. Cada ID de token ERC-721 válido é rastreado individualmente e pode ter propriedades e valor diferentes.Qual é o ID da interface ERC-721?
O ID da interface principal do ERC-721 é
O que identifica um NFT ERC-721?
Um NFT é identificado em conjunto pela rede blockchain, pelo endereço do contrato inteligente e pelo ID do token.O que balanceOf retorna?
Retorna o número de NFTs que um endereço possui em um contrato ERC-721.O que ownerOf retorna?
Retorna o endereço do proprietário atual para um ID de token válido.Qual é a diferença entre transferFrom e safeTransferFrom?
Um NFT ERC-721 pode ser enviado para um contrato inteligente?
Sim, mas normalmente deve-se usar uma transferência segura para que o destinatário confirme que pode aceitar o NFT.O que approve faz?
Concede a um endereço permissão para transferir um NFT específico.O que setApprovalForAll faz?
Autoriza um operador a gerenciar todos os NFTs que o proprietário possui naquele contrato ERC-721.Uma aprovação de operador expira automaticamente?
Não. Uma aprovação padrão de operador permanece ativa até que o proprietário a revogue ou que uma lógica personalizada do contrato altere seu efeito.A transferência de um NFT remove sua aprovação específica?
Sim. A aprovação específica do token é removida quando o NFT é transferido.Metadados são obrigatórios no ERC-721?
Não. A interface de metadados é opcional, embora a maioria das coleções de NFTs a implemente.Os metadados ERC-721 podem mudar?
Sim, os metadados podem mudar, a menos que o contrato e o sistema de armazenamento ofereçam uma garantia verificável de imutabilidade.Todo contrato ERC-721 tem totalSupply?
Não.
O ERC-721 define a criação de tokens?
O padrão reconhece a criação por meio de eventos de propriedade, mas não exige uma função pública específica de mint nem uma política de oferta.O ERC-721 define a queima?
Não. A função de burn é opcional e depende da implementação individual.O ERC-721 exige royalties?
Não. Royalties exigem lógica ou padrões separados, e as informações sobre royalties não obrigam automaticamente o pagamento.Ser proprietário de um token ERC-721 concede direitos autorais?
Não. Os direitos de propriedade intelectual dependem da licença e do contrato legal aplicáveis.Contratos ERC-721 podem ser atualizados?
Alguns podem ser atualizados por sistemas de proxy, enquanto outros são imutáveis após a implantação.Um NFT ERC-721 pode ser fracionado?
A propriedade fracionada exige um contrato ou mecanismo de token separado, pois o token ERC-721 básico é de propriedade como uma unidade inteira.Uma aprovação ERC-721 pode ser usada para roubar NFTs?
Sim. Um endereço aprovado malicioso pode transferir os NFTs abrangidos pela permissão.A conformidade com ERC-721 comprova autenticidade?
Não. Qualquer pessoa pode implantar um contrato compatível, por isso o endereço da coleção e o emissor devem ser verificados de forma independente.Qual é o principal benefício do ERC-721?
Seu principal benefício é padronizar o comportamento de propriedade e transferência, permitindo que vários aplicativos cripto interajam com ativos tokenizados exclusivos.Conclusão
O ERC-721 é o principal padrão da Ethereum para representar tokens não fungíveis identificados individualmente.Ele define consultas comuns de propriedade, transferências, aprovações, permissões de operadores, eventos e regras de detecção de interface.Cada NFT é identificado exclusivamente pela rede blockchain, pelo endereço do contrato e pelo ID do token.O ID da interface principal é
Você também pode gostar
HOT
Criptomoedas que estão em alta atualmente e ganhando atenção significativa do mercado
TOP volume
As criptomoedas com o maior volume de negociação
Recém-adicionados
Criptomoedas listadas recentemente que estão disponíveis para negociação

