ERC-721

O padrão ERC-721, conhecido como o padrão para tokens não fungíveis (NFTs) no Ethereum, introduz um mecanismo para representar a propriedade e a transferência de ativos únicos. Diferente dos tokens ERC-20, que são fungíveis e cada token é idêntico aos demais, cada token ERC-721 é único, permitindo assim a representação digital de ativos únicos e a propriedade desses na blockchain.

Características Chave do ERC-721

  • Unicidade: Cada token possui um identificador único (frequentemente chamado de "tokenId") que o distingue de todos os outros tokens dentro do mesmo contrato.

  • Propriedade: O contrato mantém um registro de quem é o proprietário de cada token, permitindo a propriedade digital verificável de ativos únicos.

  • Transferibilidade: Os tokens podem ser transferidos entre contas, o que permite o comércio, a venda e a transferência de propriedade de ativos digitais únicos.

  • Interoperabilidade: O padrão garante que os tokens NFT sejam interoperáveis com o ecossistema mais amplo do Ethereum, incluindo mercados e outras plataformas que suportam o padrão ERC-721.

O padrão ERC-721 define um conjunto de funções e eventos que um contrato inteligente deve implementar para ser compatível com o ERC-721:

Funções Requeridas:

  • balanceOf(address _owner): Retorna o número de tokens que uma direção possui.

  • ownerOf(uint256 _tokenId): Retorna o proprietário de um token específico.

  • transferFrom(address _from, address _to, uint256 _tokenId): Transfere a propriedade de um token de uma direção para outra.

  • approve(address _approved, uint256 _tokenId): Permite que uma direção transfira um token específico em nome do proprietário.

  • getApproved(uint256 _tokenId): Retorna a direção autorizada a transferir um token específico.

  • setApprovalForAll(address _operator, bool _approved): Permite ou proíbe que um operador gerencie todos os tokens de um proprietário.

  • isApprovedForAll(address _owner, address _operator): Consulta se um operador está autorizado a gerenciar todos os tokens de um proprietário.

Eventos Requeridos:

  • Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId): Emitido quando a propriedade de um token é transferida.

  • Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId): Emitido quando uma direção é autorizada a transferir um token específico.

  • ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved): Emitido quando a autorização é dada ou revogada para um operador gerenciar todos os tokens de um proprietário.

Implementação e Uso

Os tokens ERC-721 ganharam popularidade em aplicativos que requerem a representação de ativos únicos e a propriedade verificável na blockchain, como arte digital, colecionáveis, bens imóveis virtuais e mais. A implementação do padrão ERC-721 permite que os desenvolvedores criem contratos inteligentes que gerenciam a propriedade, transferência e acesso a ativos digitais únicos, facilitando a criação de um mercado vibrante e diverso de NFTs no Ethereum.

Last updated