ERC-721

El estándar ERC-721, conocido como el estándar para tokens no fungibles (NFTs) en Ethereum, introduce un mecanismo para representar la propiedad y la transferencia de activos únicos. A diferencia de los tokens ERC-20, que son fungibles y cada token es idéntico a los demás, cada token ERC-721 es único, permitiendo así la representación digital de activos únicos y la propiedad de estos en la blockchain.

Características Clave del ERC-721

  • Unicidad: Cada token tiene un identificador único (a menudo llamado "tokenId") que lo distingue de todos los demás tokens dentro del mismo contrato.

  • Propiedad: El contrato lleva un registro de quién es el propietario de cada token, permitiendo la propiedad digital verificable de activos únicos.

  • Transferibilidad: Los tokens pueden ser transferidos entre cuentas, lo que permite el comercio, la venta y la transferencia de propiedad de activos digitales únicos.

  • Interoperabilidad: El estándar asegura que los tokens NFT sean interoperables con el ecosistema más amplio de Ethereum, incluyendo mercados y otras plataformas que admiten el estándar ERC-721.

El estándar ERC-721 define un conjunto de funciones y eventos que un contrato inteligente debe implementar para ser compatible con ERC-721:

Funciones Requeridas:

  • balanceOf(address _owner): Devuelve el número de tokens que posee una dirección.

  • ownerOf(uint256 _tokenId): Devuelve el propietario de un token específico.

  • transferFrom(address _from, address _to, uint256 _tokenId): Transfiere la propiedad de un token de una dirección a otra.

  • approve(address _approved, uint256 _tokenId): Permite a una dirección transferir un token específico en nombre del propietario.

  • getApproved(uint256 _tokenId): Devuelve la dirección autorizada para transferir un token específico.

  • setApprovalForAll(address _operator, bool _approved): Permite o prohíbe a un operador gestionar todos los tokens de un propietario.

  • isApprovedForAll(address _owner, address _operator): Consulta si un operador está autorizado a gestionar todos los tokens de un propietario.

Eventos Requeridos:

  • Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId): Emitido cuando se transfiere la propiedad de un token.

  • Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId): Emitido cuando se autoriza a una dirección para transferir un token específico.

  • ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved): Emitido cuando se autoriza o revoca la autorización a un operador para gestionar todos los tokens de un propietario.

Implementación y Uso

Los tokens ERC-721 han ganado popularidad en aplicaciones que requieren la representación de activos únicos y la propiedad verificable en la blockchain, como arte digital, coleccionables, bienes inmuebles virtuales y más. La implementación del estándar ERC-721 permite a los desarrolladores crear contratos inteligentes que gestionan la propiedad, transferencia y acceso a activos digitales únicos, facilitando la creación de un mercado vibrante y diverso de NFTs en Ethereum.

Last updated