Saltar al contenido principal
Change page

Estándar de token no fungible ERC-721

Introducción

¿Qué es un token no fungible?

Un token no fungible (NFT) se utiliza para identificar algo o a alguien de forma única. Este tipo de token es perfecto para usarse en plataformas que ofrecen artículos coleccionables, claves de acceso, billetes de lotería, asientos numerados para conciertos y partidos deportivos, etc. Este tipo especial de token tiene posibilidades increíbles, por lo que merece un estándar adecuado, ¡el ERC-721 llegó para resolverlo!

¿Qué es ERC-721?

El ERC-721 introduce un estándar para los NFT, en otras palabras, este tipo de token es único y puede tener un valor diferente al de otro token del mismo contrato inteligente, tal vez debido a su antigüedad, rareza o incluso algo más como su aspecto visual. Un momento, ¿aspecto visual?

¡Sí! Todos los NFT tienen una variable uint256 llamada tokenId, por lo que para cualquier contrato ERC-721, el par contract address, uint256 tokenId debe ser globalmente único. Dicho esto, una aplicación descentralizada (dapp) puede tener un "convertidor" que utilice el tokenId como entrada y produzca una imagen de algo genial, ¡como zombis, armas, habilidades o gatitos increíbles!

Requisitos previos

Cuerpo

El ERC-721 (Ethereum Request for Comments 721), propuesto por William Entriken, Dieter Shirley, Jacob Evans y Nastassia Sachs en enero de 2018, es un estándar de token no fungible que implementa una API para tokens dentro de contratos inteligentes.

Proporciona funcionalidades como transferir tokens de una cuenta a otra, obtener el saldo actual de tokens de una cuenta, obtener el propietario de un token específico y también el suministro total del token disponible en la red. Además de estas, también tiene otras funcionalidades como aprobar que una cantidad de tokens de una cuenta pueda ser movida por una cuenta de terceros.

Si un contrato inteligente implementa los siguientes métodos y eventos, se le puede llamar contrato de token no fungible ERC-721 y, una vez desplegado, será responsable de realizar un seguimiento de los tokens creados en Ethereum.

De EIP-721 (se abre en una pestaña nueva):

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);

Ejemplos

Veamos cómo un estándar es tan importante para simplificarnos la inspección de cualquier contrato de token ERC-721 en Ethereum. Solo necesitamos la Interfaz Binaria de Aplicación (ABI) del contrato para crear una interfaz para cualquier token ERC-721. Como puede ver a continuación, utilizaremos una ABI simplificada para que sea un ejemplo de baja fricción.

Ejemplo con Web3.py

Primero, asegúrese de haber instalado la biblioteca de Python Web3.py (se abre en una pestaña nueva):

pip install web3

El contrato de CryptoKitties tiene algunos eventos interesantes además de los estándar.

Revisemos dos de ellos, Pregnant y Birth.

Lecturas adicionales

Tutoriales: Construir con tokens no fungibles (ERC-721) en Ethereum