¿Qué es la interfaz de contrato de Solidity?
Escrito por Alchemy
Solidity es un lenguaje orientado a objetos de alto nivel para implementar smart contracts. Al escribir smart contracts en Solidity, es posible que quieras usar interfaces para interactuar con otros smart contracts. Saber cómo usar interfaces te ayudará a profundizar tu conocimiento del lenguaje Solidity y puede darte ideas nuevas sobre otros smart contracts interesantes que puedes construir.
En este artículo, explicamos qué es una interfaz de contrato en Solidity y te mostramos cómo crear una. Incluimos algunos ejemplos de implementación y declaración de interfaces que te sirvan de guía al momento de escribir una.
¿Qué es la interfaz en Solidity?
Una interfaz de contrato en Solidity es una lista de definiciones de funciones sin implementación. En otras palabras, una interfaz es una descripción de todas las funciones que un objeto debe tener para poder operar. La interfaz impone un conjunto definido de propiedades y funciones sobre un contrato.
Solidity te permite interactuar con otros contratos sin tener su código, usando su interfaz. Por ejemplo, si quieres interactuar con otro contrato desde tu propio contrato, provees tus llamadas con un wrapper de interfaz. Al declarar una interfaz, puedes interactuar con otros contratos y llamar funciones en otro contrato.
Las interfaces por lo general se encuentran en la parte superior de un contrato en Solidity, y se identifican con la palabra clave "interface". Debido a que las interfaces reducen la duplicación de código y la sobrecarga, son más útiles cuando las aplicaciones descentralizadas requieren extensibilidad y buscan evitar complejidad.
Características de la interfaz en Solidity
- La interfaz en Solidity puede heredar de otras interfaces
- Los contratos pueden heredar interfaces de la misma forma en que heredan otros contratos
- Puedes sobrescribir una función de interfaz
- Los tipos de datos definidos dentro de interfaces pueden accederse desde otros contratos
Todas las funciones que heredan de la interfaz deben establecer el modificador override en cada función que sobrescribe una función de interfaz. De lo contrario, el compilador de Solidity arrojará un error.
Contratos abstractos vs. interfaces
Los contratos abstractos y las interfaces son dos formas en que los desarrolladores web3 pueden construir aplicaciones distribuidas más grandes y complejas, ya que permiten la extensibilidad dentro de Solidity.
Los contratos abstractos poseen al menos una función sin implementación, por lo que no pueden compilarse. Sin embargo, los contratos abstractos pueden usarse como contratos base de los cuales otros contratos pueden heredar.
Las interfaces son similares a los contratos abstractos, pero no pueden tener ninguna función implementada. Además, las interfaces están limitadas a lo que puede representar la Application Binary Interface (ABI) del contrato. La conversión entre la ABI y una interfaz es posible sin ninguna pérdida de información.
Cómo crear una interfaz en Solidity
Las interfaces normalmente se ubican en la parte superior de tu programa y se declaran con la palabra clave "interface". Luego puedes usar esa interfaz para comunicarte con otro contrato, o puedes implementar la interfaz.
Supongamos que estás escribiendo un smart contract wallet; podría verse algo así:

Nota el uso de "is IWallet" aquí. En este caso, estamos heredando la interfaz IWallet e implementándola en nuestro contrato, Wallet.
Luego, si tuvieras algún smart contract que quisiera poder comunicarse con wallets (WalletFriendlyContract aquí), podrías reutilizar la interfaz:

Requisitos de la interfaz en Solidity
Existen algunas restricciones al crear interfaces en Solidity, y los desarrolladores deben recordar esta lista de los principales requisitos de las interfaces:
- La interfaz no puede tener ninguna función implementada
- Las funciones de una interfaz solo pueden ser de tipo external
- La interfaz no puede declarar un constructor
- La interfaz no puede declarar variables de estado
Ejemplos de interfaces en Solidity
Esta sección contiene algunos ejemplos que te guiarán al escribir código de interfaz en Solidity.
El siguiente ejemplo de código de interfaz, tomado de la documentación de Solidity, crea una interfaz llamada "Token" para obtener información sobre transacciones. Contiene una función para acceder a información sobre la dirección del destinatario y el monto transferido desde otros contratos.

El siguiente ejemplo de interfaz en Solidity, tomado de Solidity by Example, muestra un contrato completo con la declaración e implementación de la interfaz.

Comienza a construir aplicaciones en Solidity con Alchemy
Este artículo te introdujo a las interfaces en Solidity y mostró cómo los desarrolladores pueden usar interfaces para ahorrar tiempo y reducir la complejidad al construir aplicaciones en Solidity. Para seguir aprendiendo sobre Solidity, explora el Ethereum Developer Bootcamp gratuito de Alchemy University, que explica los conceptos centrales del desarrollo en Solidity a lo largo de un curso de 7 semanas, a tu propio ritmo, repleto de retos de programación, video lecciones y los mejores recursos para dominar Solidity.
Si los desarrolladores son nuevos en el desarrollo en general, el curso intensivo de JavaScript de 3 semanas de Alchemy University es un excelente prerrequisito antes de comenzar un bootcamp de Ethereum.
Resúmenes relacionados
Solidity3 de diciembre de 2025
Los 6 mejores IDEs de Solidity para desarrolladores (2026)
Explora los mejores IDEs para el desarrollo en Solidity.
Solidity19 de noviembre de 2025
Optimización de gas en Solidity: 12 técnicas para hacer tus smart contracts más económicos y eficientes
¿Quieres escribir mejor código y reducir tus fees de gas?
Solidity13 de noviembre de 2025
12 mejores prácticas de seguridad para smart contracts en Solidity
Protege tus smart contracts con estos consejos y herramientas de seguridad de expertos.

Construye magia blockchain
Alchemy combina los productos y herramientas de desarrollo Web3 más potentes con recursos, comunidad y un soporte legendario.