¿Qué es un ABI de un smart contract?
Escrito por Alchemy
La Application Binary Interface (ABI) de un smart contract le da al contrato la capacidad de comunicarse e interactuar con aplicaciones externas y otros smart contracts. Recibir datos de fuentes externas puede ser fundamental para cumplir los objetivos de la aplicación y del usuario.
En el desarrollo web tradicional, el intercambio de datos ocurre entre aplicaciones y servidores a través de API's (Application Program Interface). Los servidores actúan como fuentes centralizadas de información que envían datos a la aplicación cuando se solicitan.
En una blockchain, no existe esa centralización de datos. Los nodos funcionan esencialmente como servidores y los smart contracts son funciones "alojadas" on-chain. Las aplicaciones fuera de la blockchain (y otros smart contracts) necesitan una forma de comunicarse con los smart contracts que están on-chain. Aquí es donde entra en juego el ABI.
¿Por qué ABI?
Antes de entrar en más detalles sobre qué es el ABI, conviene entender por qué existe.
Los smart contracts son las aplicaciones centrales de la EVM (Ethereum Virtual Machine). El propósito de los smart contracts es ejecutar transacciones cuando se cumplen ciertas condiciones definidas en el contrato. Estas condiciones pueden ser eventos tanto on-chain como off-chain. Los smart contracts se escriben en lenguajes de alto nivel como Solidity, pero se almacenan en la EVM como bytecode ejecutable, es decir, en formato binario.

Dado que este bytecode no es legible para humanos, requiere interpretación para poder entenderlo. El ABI le permite a cualquier persona que escriba un smart contract comunicarse entre una aplicación web escrita en un lenguaje de alto nivel como Javascript y el bytecode que entiende la EVM.
¿Qué es un ABI?
Al igual que su prima en Web2, la API, el ABI actúa como un selector de funciones, definiendo los métodos específicos que se pueden invocar en un smart contract para su ejecución. Estos métodos específicos y sus tipos de datos asociados se listan en un archivo JSON RPC generado.

A diferencia de una API, no podemos simplemente enviar una solicitud directamente en formato JSON a un smart contract y esperar una respuesta, ya que un contrato solo se comunica en bytecode. Para traducir esto en algo que la EVM entienda, esta información se codifica mediante ABI encoding. Estas codificaciones incluyen firmas de función y declaraciones de variables, de modo que la EVM sepa exactamente qué función ejecutar dentro del smart contract.

Las respuestas también están en bytecode, por lo que se requiere interpretación antes de que una aplicación web pueda procesarlas. La ventaja de usar bytecode en la respuesta es que también podemos esperar cierta estructura al llamar a una función de un contrato.
¿Cómo usar el ABI?
Generación
Si estás usando herramientas como Hardhat/Truffle o un IDE como Remix, el ABI del contrato se genera automáticamente. También puedes crear el ABI manualmente usando el paquete NPM del compilador de Solidity. Después de instalar el paquete, puedes ejecutar el comando 'solcjs contractname.sol --abi' en una terminal. Esto generará un archivo .abi si se ejecuta correctamente.
Ahora que tienes un ABI generado, veamos algunos de los elementos de este archivo:

Ejecución
Dado que el ABI funciona como intérprete entre el bytecode de la EVM y el Javascript de un sitio web, es necesario siempre que se quiera ejecutar cualquier función de un smart contract. Además del ABI, se requiere la dirección del contrato en la blockchain. Aquí hay un pequeño fragmento de código Javascript que muestra cómo se hace esto:

Si te interesa encontrar el ABI de un contrato ya desplegado, puedes buscarlo en Etherscan usando la dirección del contrato. Por ejemplo aquí:

Codificación
Dado que toda la comunicación se hace en bytecode, sería difícil esperar que los desarrolladores codifiquen estos mensajes por su cuenta. Por suerte, compiladores populares como Remix también pueden encargarse de la codificación por ti. Estas codificaciones siguen un patrón determinado, así que se puede entender mejor qué está pasando revisando la Especificación ABI.
Los primeros cuatro bytes son la firma de la función, que indica qué tipo de función del smart contract se está ejecutando. Un identificador de función popular es a9059cbb, que indica que se trata de una transferencia ERC20. Existe un directorio de base de datos de firmas de función donde puedes explorar más.

A partir del quinto byte en adelante es donde se codifican los argumentos. Las respuestas siguen una estructura similar, pero sin incluir la firma de la función.
Conclusión
El ABI a menudo puede ser un aspecto que se pasa por alto al trabajar con smart contracts, pero cumple un rol importante en la usabilidad de esta tecnología. Practicar con tutoriales de smart contracts es una excelente manera de entender el poder de este trabajador silencioso y de aplicar lo aprendido.
Resúmenes relacionados
Ethereum28 de julio de 2026
Lanza una memecoin en Robinhood Chain
Escribe y despliega un ERC20 de suministro fijo en Robinhood Chain mainnet con Foundry y Alchemy RPC, o delega todo el lanzamiento a un coding agent con el Alchemy CLI.
Ethereum18 de noviembre de 2025
¿Qué es la actualización Fusaka de Ethereum? Guía para desarrolladores sobre 12 EIPs
Un desglose práctico de la actualización Fusaka, que explica los 12 EIPs principales y cómo cambian la disponibilidad de datos, la criptografía, los costos de gas y las operaciones de validadores en todo el stack de Ethereum.
Ethereum19 de mayo de 2025
EIP-7702: guía rápida de integración para desarrolladores de Ethereum post-pectra
Ethereum está a punto de recibir una actualización importante con EIP-7702. Aquí hay una guía rápida sobre consideraciones de integración para todos los desarrolladores.

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