¿Qué es la interfaz ERC-721?
La interfaz ERC-721 es un conjunto estandarizado de funciones y eventos de contratos inteligentes que se utiliza para representar y transferir tokens no fungibles en Ethereum y en redes blockchain compatibles.Un token no fungible, o NFT, representa un token identificado de forma única, en lugar de una cantidad intercambiable de unidades idénticas.La especificación oficial de ERC-721 define cómo las wallets, aplicaciones, contratos inteligentes y herramientas blockchain pueden comprobar la titularidad de los NFT y realizar transferencias estandarizadas.
La interfaz no determina qué representa un NFT, cuánto vale ni si el contenido vinculado es auténtico.Define un lenguaje técnico común que pueden utilizar distintas aplicaciones cripto para interactuar con contratos de NFT.El estándar ERC-721 alcanzó el estado Final en el proceso de propuestas de mejora de Ethereum y sigue siendo uno de los principales estándares para los activos únicos en blockchain.ERC-721 se puede utilizar para coleccionables digitales, objetos de videojuegos, credenciales de membresía, terrenos virtuales, entradas para eventos, activos similares a dominios, posiciones financieras y registros tokenizados.¿Por qué es importante una interfaz?
Una interfaz de contrato inteligente describe las funciones y los eventos externos que se espera que ofrezca un contrato compatible.Sin una interfaz común, cada proyecto de NFT podría utilizar nombres de funciones y reglas de transferencia diferentes.En ese caso, las wallets y aplicaciones descentralizadas necesitarían código personalizado para cada colección.La interfaz ERC-721 permite al software llamar a funciones conocidas como
¿Qué hace que un token ERC-721 sea no fungible?
Cada token ERC-721 tiene un identificador entero único sin signo llamado ID de token.El token queda identificado por completo mediante la combinación de la red blockchain, la dirección del contrato y el ID de token.El ID de token 100 de un contrato no está relacionado con el ID de token 100 de otro contrato.El estándar no exige que los ID de token empiecen en cero, aumenten en orden ni sigan un patrón predecible.Las aplicaciones deben tratar cada ID de token como un identificador opaco, en lugar de deducir qué ID existen.Según el modelo básico de titularidad de ERC-721, cada ID de token válido tiene un único titular en cada momento.Un NFT se puede transferir como un token completo; la titularidad fraccionada requiere un contrato o una estructura de token aparte, fuera de la interfaz básica.ID de la interfaz básica ERC-721
La interfaz básica ERC-721 se identifica mediante ERC-165 con el valor
Un contrato compatible debe devolver
El estándar de detección de interfaces ERC-165 calcula un identificador de interfaz aplicando XOR a los selectores de las funciones que incluye dicha interfaz.
ERC-165 permite que una aplicación pregunte a un contrato qué interfaces estandarizadas afirma admitir antes de intentar interactuar con él.Una respuesta afirmativa resulta útil para comprobar la compatibilidad, pero no demuestra por sí sola que todas las funciones estén implementadas correctamente.Las aplicaciones que gestionan activos valiosos también pueden necesitar revisar el código, realizar pruebas y simular transacciones.Funciones principales de ERC-721
La interfaz ERC-721 obligatoria incluye consultas de titularidad, funciones de transferencia y funciones de gestión de aprobaciones.Las funciones principales son
La función balanceOf
La función
La función ownerOf
La función
La función transferFrom
La función
La dirección
Un NFT enviado con
Las funciones safeTransferFrom
ERC-721 define dos versiones sobrecargadas de
Si el destinatario es un contrato inteligente, el proceso de transferencia llama a
¿Qué es IERC721Receiver?
Su función obligatoria es
Un receptor que acepta la transferencia devuelve el selector de su función, normalmente representado como
La documentación actual de implementación de ERC-721 incluye una interfaz de receptor y una utilidad básica de custodia para los contratos que necesitan aceptar transferencias seguras.
Antes de utilizar la devolución de llamada para actualizar datos contables importantes, el receptor debe verificar qué contrato de NFT la ha llamado.Riesgo de devolución de llamada del receptor ERC-721
Una transferencia segura a un contrato genera una llamada externa a ese destinatario.El destinatario puede ejecutar código adicional antes de que finalice la transacción original.Esto crea una posible vía de reentrancia si la aplicación emisora no ha completado sus actualizaciones de estado internas.Un receptor malicioso puede intentar llamar a otra función del contrato original durante la devolución de llamada.Las directrices de seguridad de contratos inteligentes de Solidity recomiendan completar las comprobaciones y los cambios de estado importantes antes de realizar interacciones externas, siempre que el diseño previsto lo permita.
Los desarrolladores deben probar las transferencias seguras de NFT con contratos receptores maliciosos, en lugar de dar por sentado que la devolución de llamada es inocua.La función approve
La función
Una llamada a
La función getApproved
La función
Para determinar si otra dirección puede transferir el token, las aplicaciones también deben comprobar
La función setApprovalForAll
La función
La función isApprovedForAll
La función
Eventos ERC-721
La interfaz básica ERC-721 define los eventos
El evento Transfer
El evento
El evento Approval
El evento
El evento ApprovalForAll
El evento
Interfaz opcional de metadatos ERC-721
La extensión de metadatos añade
Su ID de interfaz ERC-165 es
La función
La función
La función
Cómo funciona tokenURI
La función
La guía actual de desarrollo de ERC-721 señala que la parte que controla la ubicación de almacenamiento puede modificar los metadatos off-chain.
La titularidad del token no garantiza automáticamente que una imagen o un archivo externo siga estando disponible de forma permanente.Interfaz enumerable opcional ERC-721
La extensión enumerable permite a las aplicaciones descubrir ID de token mediante consultas on-chain.Su ID de interfaz ERC-165 es
Añade
La función
En su lugar, muchas aplicaciones reconstruyen las tenencias de NFT a partir de los eventos
Acuñación y quema
La interfaz básica ERC-721 no exige una función pública de acuñación.Cada proyecto decide si la acuñación es abierta, restringida, programada, limitada o está deshabilitada permanentemente.El estándar tampoco exige una función pública de quema.Una quema elimina un token de los registros de titularidad válida conforme a la implementación del contrato.Los usuarios deben examinar quién puede acuñar o quemar NFT y si un administrador puede afectar a tokens que tengan otras cuentas.Una interfaz de transferencia compatible no demuestra que la oferta del token sea fija.Interfaz ERC-721 e implementación ERC-721
La interfaz define el comportamiento externo necesario para la compatibilidad.La implementación contiene la lógica real de almacenamiento, autorización, transferencia, acuñación, metadatos y administración.Dos contratos pueden admitir la misma interfaz ERC-721 y utilizar diseños internos muy distintos.Una implementación puede ser inmutable y otra funcionar mediante un proxy actualizable.Una puede tener una oferta fija, mientras que otra permite a un administrador acuñar tokens indefinidamente.Una puede almacenar los metadatos on-chain y otra apuntar a un servidor modificable.Los usuarios deben revisar la implementación, en lugar de considerar que la compatibilidad con la interfaz equivale a una evaluación de seguridad completa.ERC-721 frente a ERC-20
ERC-20 representa saldos fungibles, mientras que ERC-721 representa tokens identificados individualmente.Una cuenta ERC-20 puede tener una cantidad divisible, como 250 unidades.Una cuenta ERC-721 posee un número de ID de token distintos.La función ERC-721
ERC-721 frente a ERC-1155
ERC-721 se centra en tokens no fungibles identificados individualmente.ERC-1155 permite que un contrato gestione muchos ID de token, incluidos activos fungibles, semifungibles y no fungibles.Una cuenta ERC-1155 puede tener varias unidades de un mismo ID de token.Un ID de token ERC-721 tiene un único titular y no mantiene un saldo por cantidad para cada cuenta.El estándar más adecuado depende del modelo del activo, los patrones de transferencia, la necesidad de operaciones por lotes y los requisitos de la aplicación.Royalties e interfaz ERC-721
La interfaz básica ERC-721 no define royalties para los creadores.Una interfaz de royalties independiente puede comunicar un destinatario y una cantidad de pago sugeridos.La información de royalties no obliga automáticamente a todos los sistemas de transferencia a realizar el pago.Una colección que anuncie royalties debe explicar cómo se calculan y si pueden cambiar.Los usuarios no deben suponer que un NFT ERC-721 incluye derechos de royalties permanentes o exigibles.Riesgos de seguridad de las aprobaciones ERC-721
El phishing de aprobaciones es uno de los riesgos más importantes para los titulares de NFT.Un sitio web malicioso puede solicitar
Riesgo de transferencia insegura
La función
Por este motivo se prefiere
Riesgos de los metadatos y la autenticidad
Cualquiera puede desplegar un contrato ERC-721 con el nombre o el símbolo de una colección conocida.La dirección del contrato es el identificador técnico más importante de una colección.Los metadatos también pueden contener nombres engañosos, obras copiadas, enlaces externos inseguros o archivos que no están disponibles.Un URI de token controlado por el administrador del proyecto puede apuntar posteriormente a otro contenido.La titularidad on-chain no verifica por sí sola la identidad del creador ni los derechos de propiedad intelectual.Los usuarios deben confirmar la dirección de la colección y la información del proyecto mediante fuentes autorizadas.Riesgo de contratos actualizables
Una implementación ERC-721 puede funcionar detrás de un proxy actualizable.Un administrador autorizado puede cambiar las reglas de transferencia, la lógica de los metadatos, los derechos de acuñación u otros comportamientos después de que los usuarios adquieran NFT.Las actualizaciones pueden corregir errores, pero también generan riesgos de gobernanza y de compromiso de claves.Los usuarios deben revisar los permisos de actualización, los retrasos temporales, los controles multifirma y los roles de administrador.La compatibilidad con la interfaz ERC-721 no revela todas las funciones privilegiadas de la implementación.Cómo deben implementar ERC-721 los desarrolladores
Los desarrolladores deben partir de una implementación revisada y mantenida activamente, en lugar de reescribir sin una razón de peso la lógica sensible de titularidad.La API ERC-721 actual de OpenZeppelin ofrece componentes básicos, de metadatos, enumerables, pausables, quemables, de royalties, de votación y relacionados con receptores.
El acceso a la acuñación debe restringirse conforme a la política de oferta documentada de la colección.Conviene considerar la acuñación segura cuando los NFT puedan acuñarse directamente en contratos inteligentes.Las devoluciones de llamada de receptores deben tratarse como llamadas externas con posible comportamiento de reentrancia.Las pruebas deben abarcar la titularidad, las aprobaciones, los permisos de operadores, los receptores seguros y maliciosos, las quemas, los ID de token no válidos y las transferencias no autorizadas.Los desarrolladores también deben probar que la detección de interfaces devuelve los valores correctos para cada extensión implementada.Cómo pueden detectar las aplicaciones la compatibilidad con ERC-721
Una aplicación puede llamar a
Un valor de retorno
Ejemplo de transferencia ERC-721
Supongamos que Alice posee el ID de token 42 de un contrato ERC-721.La función
Su wallet llama a
Actualiza la titularidad y llama a
Si el destinatario devuelve el selector correcto, la transferencia se completa y se emite un evento
Errores habituales con la interfaz ERC-721
Un error habitual es suponer que el nombre de una colección identifica de manera exclusiva un contrato de NFT.Otro es tratar
Un tercer error es utilizar
Preguntas frecuentes
¿Qué es la interfaz ERC-721?
La interfaz ERC-721 es un conjunto estandarizado de funciones y eventos para registrar la titularidad, las aprobaciones y las transferencias de tokens no fungibles.¿Cuál es el ID de la interfaz ERC-721?
El ID de la interfaz básica ERC-721 es
¿Qué devuelve balanceOf en un contrato ERC-721?
Devuelve el número de NFT distintos de ese contrato que posee una dirección.¿Qué hace ownerOf?
Devuelve el titular actual de un ID de token válido.¿Cuál es la diferencia entre transferFrom y safeTransferFrom?
¿Qué es onERC721Received?
Es la función de devolución de llamada que implementa un contrato inteligente para confirmar que puede aceptar un NFT mediante una transferencia segura.¿Puede fallar una transferencia segura de NFT?
Sí. Falla si no se superan las comprobaciones de autorización o si el contrato receptor no devuelve el selector de devolución de llamada esperado.¿Qué hace approve?
Autoriza a una dirección a transferir un NFT concreto.¿Qué hace setApprovalForAll?
Concede a un operador autoridad sobre todos los NFT que quien llama posea en ese contrato ERC-721.¿Caduca automáticamente la aprobación de un operador?
No. Una aprobación estándar para toda la colección permanece activa hasta que el titular la revoca o el contrato aplica otras reglas personalizadas.¿Se elimina la aprobación específica de un NFT al transferirlo?
Sí. Una implementación ERC-721 normal elimina durante la transferencia la aprobación asociada a ese token.¿ERC-721 exige metadatos?
No. La interfaz de metadatos es opcional, aunque la mayoría de las colecciones de NFT la implementan.¿Cuál es el ID de la interfaz de metadatos ERC-721?
La extensión de metadatos utiliza el ID de interfaz
¿Cuál es el ID de la interfaz enumerable ERC-721?
La extensión enumerable utiliza el ID de interfaz
¿Todos los contratos ERC-721 admiten totalSupply?
No.
¿ERC-721 exige una función de acuñación?
No. La interfaz básica no define cómo los usuarios o administradores acuñan NFT.¿ERC-721 exige una función de quema?
No. La quema es una función de la implementación, no una función básica obligatoria.¿ERC-721 impone royalties?
No. Los royalties quedan fuera de la interfaz básica ERC-721 y requieren lógica o estándares independientes.¿Pueden cambiar los metadatos ERC-721?
Sí. El estándar permite que el URI del token sea modificable, salvo que la implementación ofrezca garantías de inmutabilidad más sólidas.¿Cumplir ERC-721 demuestra que un NFT es auténtico?
No. Cualquiera puede desplegar un contrato compatible, por lo que los usuarios deben verificar por separado la dirección del contrato y el emisor.Conclusión
La interfaz ERC-721 proporciona las reglas comunes de titularidad, aprobación, transferencia y eventos que utilizan los tokens no fungibles en aplicaciones compatibles con Ethereum.Su ID de interfaz básica es
También te puede interesar
ZK-Rollup
ZK-Rollup-as-a-Service
zk-SNARK
POPULAR
Criptomonedas de moda que están acaparando la atención del mercado
Volumen TOP
Las criptomonedas con mayor volumen de trading
Recién Añadidos
Criptomonedas recientemente listadas y disponibles para operar

