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