ERC-721 es un estándar para tokens no fungibles (NFT) en Ethereum. Un estándar es un conjunto de reglas publicado. No fungible significa que cada token es distinto de los demás. ERC-721 especifica una interfaz, es decir, la lista de funciones y eventos que ofrece un contrato inteligente. Un contrato inteligente es un programa almacenado en una blockchain. En ERC-721, un token es una unidad emitida en una blockchain existente a través de un contrato inteligente.
ERC-721 se publicó como una Ethereum Improvement Proposal (EIP), que es un documento de diseño dirigido a la comunidad de Ethereum. El número de la propuesta es 721, por lo que ERC-721 también se escribe EIP-721. ERC es la categoría de propuestas para estándares a nivel de aplicación, es decir, estándares que siguen las aplicaciones construidas sobre Ethereum, como los estándares de tokens.
El código de ERC-721 denomina a su interfaz ERC721. Un token ERC-721 es un token emitido por un contrato que cumple con ERC-721.
Una función es una operación con nombre que ofrece un contrato y que un usuario puede invocar. Un evento es un aviso que un contrato registra en la blockchain cuando algo cambia, de modo que el software pueda seguir ese cambio. Emitir un evento es registrarlo.
Una blockchain es el registro compartido de transacciones, mantenido en orden. Una transacción es una solicitud que un usuario envía a una blockchain, como una solicitud para mover un token. Una dirección es un identificador en una blockchain para un usuario o para un contrato inteligente.
¿Qué especifica el estándar ERC-721?
El estándar ERC-721 especifica una interfaz: las funciones que un contrato debe ofrecer y los eventos que debe emitir. Así, el software puede invocar de la misma manera a los contratos que cumplen con ERC-721.
ERC-721 también exige la detección de interfaces mediante ERC-165, un estándar que permite a un contrato indicar qué interfaces admite.
ERC-721 describe dos extensiones opcionales. La extensión de metadatos añade funciones que devuelven un nombre y un símbolo para los tokens de un contrato, además de un enlace para cada ID de token, y una extensión de enumeración añade funciones que listan los tokens que un contrato rastrea.
ERC-721 es un estándar de NFT, y fue escrito para Ethereum. Otras blockchains y otros estándares pueden funcionar de forma distinta a ERC-721.
Un contrato que cumple con ERC-721 distingue sus tokens mediante un ID de token, un número que el contrato asigna a cada token. La dirección del contrato que rastrea los tokens, junto con un ID de token, identifica a un token concreto, y ERC-721 exige que un ID de token se mantenga igual mientras el contrato exista.
ERC-721 frente a ERC-20: ¿en qué se diferencian estos dos estándares?
ERC-721 y ERC-20 difieren en lo que rastrea un contrato, en lo que nombra una transferencia y en lo que cubre una aprobación. ERC-20 es un estándar para tokens fungibles, es decir, tokens cuyas unidades son intercambiables, de modo que una unidad es igual a otra. ERC-721 es un estándar para tokens no fungibles, que un contrato distingue por ID de token, por lo que intercambiar dos de ellos no es un intercambio de iguales.
- Un contrato ERC-20 registra cuántas unidades controla cada dirección, mientras que un contrato ERC-721 registra qué dirección controla cada ID de token.
- Una transferencia ERC-20 indica una cantidad de tokens, mientras que una transferencia ERC-721 indica un ID de token.
- Una aprobación ERC-20 cubre una cantidad que otra dirección puede transferir, mientras que una aprobación ERC-721 cubre un único ID de token o, cuando se designa un operador, todos los tokens que una dirección controla en ese mismo contrato. Un operador es una dirección a la que la dirección que controla los tokens le ha permitido transferirlos todos.
¿Qué funciones y eventos define ERC-721?
Esta tabla enumera, por nombre, las funciones y eventos que define ERC-721, junto con la función de detección de interfaces proveniente de ERC-165, e indica qué hace cada una.
¿Qué función verifica el contrato receptor?
La función safeTransferFrom ejecuta una verificación del receptor después de mover un token. Cuando la dirección receptora es un contrato inteligente, el contrato ERC-721 invoca en él una función llamada onERC721Received, que es la función receptora. El contrato receptor proporciona esa función receptora, y la función devuelve una respuesta específica que define ERC-721 y que indica al contrato ERC-721 que el contrato receptor acepta la transferencia. Si el contrato receptor devuelve cualquier otra cosa, la transacción se cancela, algo que ERC-721 denomina revertir (revert).
La función transferFrom no invoca ninguna función receptora. ERC-721 deja en manos del remitente, es decir, de quien envía la transacción que invoca la función, la verificación de que la dirección receptora puede recibir tokens. Un token enviado a un contrato que no proporciona la función receptora puede perderse.
¿Cómo funcionan las aprobaciones y los operadores?
Una aprobación permite que otra dirección transfiera un token. La función approve designa una dirección para un ID de token, y getApproved devuelve esa dirección. ERC-721 establece que la dirección aprobada se restablece a ninguna cuando el token se transfiere.
Un operador es una dirección a la que, mediante setApprovalForAll, se le ha permitido transferir todos los tokens que otra dirección controla en el mismo contrato. ERC-721 exige que un contrato permita más de un operador para cada dirección que controla tokens, e isApprovedForAll devuelve si una dirección es operador de otra dirección.
Según ERC-721, una transferencia puede ser solicitada por la dirección que controla el token, por un operador de esa dirección, o por la dirección aprobada para ese ID de token.
¿Qué añade la extensión opcional de metadatos?
La extensión opcional de metadatos de ERC-721 añade tres funciones a un contrato: name, symbol y tokenURI. Los metadatos son datos que describen a los tokens, y estas tres funciones los devuelven.
La función name devuelve un nombre para los tokens que rastrea un contrato, y symbol devuelve un nombre abreviado para ellos.
La función tokenURI devuelve un URI para un ID de token concreto. Un URI, abreviatura de uniform resource identifier (identificador uniforme de recursos), es un enlace. Un contrato que omite esta extensión no tiene URI.
ERC-721 indica que el URI que devuelve tokenURI puede apuntar a un archivo JSON, un formato de texto para datos estructurados. El archivo puede contener campos de nombre, descripción e imagen.
ERC-721 permite que un contrato cambie el URI que devuelve para un ID de token, de modo que el mismo ID de token pueda llevar después a un archivo distinto. ERC-721 no especifica dónde se almacena el archivo al que apunta el URI.
¿Qué deja ERC-721 a criterio de cada contrato?
A octubre de 2026, ERC-721 no define el contenido de un token, ningún derecho vinculado a un token, dónde se almacenan los archivos de un token, cómo se crean o se destruyen los tokens, ni el estatus legal de un token. La entrada del glosario Token no fungible (NFT) explica qué deja fuera el registro de un token, es decir, la información que un contrato guarda sobre cada token.
Los contratos que cumplen con ERC-721 pueden seguir diferenciándose en su comportamiento. ERC-721 enumera los casos en los que una transferencia debe fallar, y permite que un contrato cancele una transferencia en otros casos, por ejemplo mientras las transferencias están pausadas. Por eso, un contrato puede rechazar una transferencia por motivos que ERC-721 no enumera.
5 de enero de 2026











