Pular para o conteúdo principal
Change page

Padrão de token não fungível ERC-721

Introdução

O que é um token não fungível?

Um token não fungível (NFT) é usado para identificar algo ou alguém de forma única. Esse tipo de token é perfeito para ser usado em plataformas que oferecem itens colecionáveis, chaves de acesso, bilhetes de loteria, assentos numerados para shows e partidas esportivas, etc. Esse tipo especial de token tem possibilidades incríveis, por isso merece um padrão adequado, e o ERC-721 veio para resolver isso!

O que é o ERC-721?

O ERC-721 introduz um padrão para NFT, em outras palavras, esse tipo de token é único e pode ter um valor diferente de outro token do mesmo contrato inteligente, talvez devido à sua idade, raridade ou até mesmo algo como o seu visual. Espere, visual?

Sim! Todos os NFTs têm uma variável uint256 chamada tokenId, portanto, para qualquer contrato ERC-721, o par contract address, uint256 tokenId deve ser globalmente único. Dito isso, um aplicativo descentralizado (dapp) pode ter um "conversor" que usa o tokenId como entrada e gera uma imagem de algo legal, como zumbis, armas, habilidades ou gatinhos incríveis!

Pré-requisitos

Corpo

O ERC-721 (Ethereum Request for Comments 721), proposto por William Entriken, Dieter Shirley, Jacob Evans e Nastassia Sachs em janeiro de 2018, é um padrão de token não fungível que implementa uma API para tokens dentro de contratos inteligentes.

Ele fornece funcionalidades como transferir tokens de uma conta para outra, obter o saldo atual de tokens de uma conta, obter o proprietário de um token específico e também o fornecimento total do token disponível na rede. Além dessas, ele também tem algumas outras funcionalidades, como aprovar que uma quantidade de tokens de uma conta possa ser movida por uma conta de terceiros.

Se um contrato inteligente implementar os seguintes métodos e eventos, ele pode ser chamado de contrato de token não fungível ERC-721 e, uma vez implantado, será responsável por rastrear os tokens criados no Ethereum.

Do EIP-721 (opens in a new tab):

Métodos

Eventos

    event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId);
    event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId);
    event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);

Exemplos

Vamos ver como um padrão é tão importante para simplificar a inspeção de qualquer contrato de token ERC-721 no Ethereum. Precisamos apenas da Interface Binária de Aplicação (ABI) do contrato para criar uma interface para qualquer token ERC-721. Como você pode ver abaixo, usaremos uma ABI simplificada, para torná-lo um exemplo de baixo atrito.

Exemplo com Web3.py

Primeiro, certifique-se de ter instalado a biblioteca Python Web3.py (opens in a new tab):

pip install web3

O contrato do CryptoKitties tem alguns eventos interessantes além dos padrões.

Vamos verificar dois deles, Pregnant e Birth.

  • O Rastreador de NFT do Etherscan (opens in a new tab) lista os principais NFTs no Ethereum por volume de transferências.
  • CryptoKitties (opens in a new tab) é um jogo centrado em criaturas procriáveis, colecionáveis e muito adoráveis que chamamos de CryptoKitties.
  • Sorare (opens in a new tab) é um jogo global de futebol de fantasia onde você pode coletar itens colecionáveis de edições limitadas, gerenciar seus times e competir para ganhar prêmios.
  • O Ethereum Name Service (ENS) (opens in a new tab) oferece uma maneira segura e descentralizada de endereçar recursos dentro e fora da blockchain usando nomes simples e legíveis por humanos.
  • O POAP (opens in a new tab) entrega NFTs gratuitos para pessoas que participam de eventos ou concluem ações específicas. Os POAPs são gratuitos para criar e distribuir.
  • A Unstoppable Domains (opens in a new tab) é uma empresa com sede em São Francisco que constrói domínios em blockchains. Os domínios de blockchain substituem endereços de criptomoeda por nomes legíveis por humanos e podem ser usados para habilitar sites resistentes à censura.
  • Gods Unchained Cards (opens in a new tab) é um TCG (Trading Card Game) na blockchain do Ethereum que usa NFTs para trazer propriedade real aos ativos do jogo.
  • Bored Ape Yacht Club (opens in a new tab) é uma coleção de 10.000 NFTs únicos, que, além de ser uma obra de arte comprovadamente rara, atua como um token de associação ao clube, fornecendo vantagens e benefícios aos membros que aumentam ao longo do tempo como resultado dos esforços da comunidade.

Leitura adicional

Tutoriais: Construa com tokens não fungíveis (ERC-721) no Ethereum