¿Qué es el compilador de Solidity?
Escrito por Daniel Idowu
Los desarrolladores de Ethereum que escriben smart contracts en Solidity deben pasar su código por un compilador para que la máquina virtual de Ethereum (EVM) pueda entender y ejecutar los comandos correspondientes. El compilador de Solidity convierte el código en una colección de instrucciones en bytes.
Solidity es el lenguaje de programación de Ethereum, la segunda criptomoneda por capitalización de mercado. Solidity es un lenguaje de programación de alto nivel creado específicamente para poner en marcha smart contracts. Además, Solidity es un lenguaje orientado a contratos y orientado a objetos, con tipado estático.
En este artículo repasaremos el compilador de Solidity, cómo instalar los compiladores de Solidity, las herramientas del compilador de Solidity, e incluso los decompiladores disponibles públicamente.
¿Qué es el compilador de Solidity?
Existen dos compiladores de Solidity: solc y solc.js, que se deriva de solc. El compilador de Solidity propiamente dicho, solc, está escrito en C++ y se encuentra en la versión 0.8.16 al momento de escribir este artículo. Solc.js usa Emscripten para compilar el código C++ a JavaScript. Solc se compila a JavaScript en cada versión.
Los archivos de Solidity se ensamblan usando la librería de Node.js y la herramienta de línea de comandos conocida como solcjs. Esta usa únicamente JavaScript para la compilación, en lugar del compilador de línea de comandos solc, lo que hace que su instalación sea más simple que la de solc.
Antes de que los smart contracts puedan desplegarse, deben compilarse a bytecode para la EVM (máquina virtual de Ethereum). El bytecode es la información en la que se "traduce" el código de Solidity, y contiene instrucciones binarias para la computadora.
En Ethereum, lo que se despliega en la blockchain es el bytecode. La compilación también genera un ABI (Application Binary Interface), que es una interfaz entre dos módulos de programa, a menudo entre sistemas operativos y programas de usuario.

Los contratos se compilan a bytecode que se ejecuta en la EVM. Este bytecode se despliega en la blockchain y se guarda en una dirección. Luego queda público y disponible para que cualquiera pueda interactuar con él. Una dirección identifica una instancia de contrato desplegada, que además mantiene un almacenamiento persistente para conservar el estado interno del contrato. Ether, la criptomoneda nativa de Ethereum, se usa como reserva de valor, como método de pago para ejecutar smart contracts en la blockchain, y como recompensa para los mineros que mantienen segura la red de Ethereum.
A continuación, un ejemplo rápido de cómo se compila un contrato.
Compilaremos este código usando Remix, un IDE de Ethereum en línea muy popular, de modo que no tenemos que instalar ninguna herramienta en nuestra máquina local.
En la imagen de abajo, deberías notar las flechas rosa y violeta en la parte inferior, que apuntan al ABI y al bytecode respectivamente. Los ABI se representan en formato JSON.

Cómo instalar el compilador de Solidity
Mientras aprendes Solidity, es posible que quieras instalar un compilador de Solidity. Hay varias formas convenientes de instalar el compilador de Solidity. Un método sencillo es usar Remix, donde tienes la opción de usarlo en línea. Sin embargo, este está pensado para contratos pequeños y tiene pocas opciones de compilación.
Para contratos más grandes, puedes instalar el compilador de Solidity usando npm/Node.js, Docker, paquetes de Linux, MacOS y binarios estáticos.
Método 1: instalar usando npm/node.js
El compilador de Solidity, también conocido como solc, se puede instalar usando npm. El siguiente comando instalará el programa solcjs y lo dejará disponible en todo el sistema.
Ahora puedes probar tu compilador de Solidity ejecutando el siguiente comando.
Ya estás listo para usar solcjs, que tiene menos funciones que el compilador de Solidity estándar, pero te ofrecerá un buen punto de partida.
Método 2: instalar usando Docker
Para empezar a programar en Solidity, puedes descargar una imagen de Docker y usarla. Como la imagen de Docker ejecuta el binario del compilador, puedes pasarle cualquier argumento del compilador.
El comando para descargar una imagen de Docker de Solidity es el siguiente.
Después de descargar una imagen de Docker, ejecuta el siguiente comando para verificarla.
Para compilar archivos de Solidity en la máquina host usando la imagen de Docker, monta una carpeta local para entrada y salida, y especifica el contrato a compilar.
Método 3: instalar usando paquetes binarios (MacOS, Linux)
Instalación en MacOS
Podemos usar Homebrew para instalar Solidity en MacOS. Esto nos da paquetes de macOS compilados desde el código fuente, y simplemente debemos seguir las instrucciones de instalación.
Una vez terminada la ejecución, podemos verificar que Solidity se instaló correctamente ejecutando el comando de abajo.
Deberías recibir una salida como esta:

Instalación en Linux
Instalar paquetes en Linux es un procedimiento muy simple que se puede completar en pocos pasos. Primero, agregamos el repositorio a nuestra lista de repositorios.
Luego actualizamos la lista de paquetes e instalamos solc. Si queremos usar la versión nightly en lugar de la última versión estable, debemos cambiar la entrada del repositorio a ethereum/ethereum-dev.
Compilando un smart contract de Solidity de ejemplo
El siguiente código usa nuestro contrato de ejemplo proporcionado anteriormente.
Para compilar un contrato, podemos ejecutar el siguiente código.
Para usar una versión específica de EVM al compilar nuestro contrato, podemos establecer la versión de la siguiente manera.
¿Qué es Solidity-upgrade?
Solidity-upgrade permite actualizar tus contratos para reflejar cambios de lenguaje que rompen compatibilidad. Si bien no puede realizar todos los ajustes necesarios para cada versión con cambios incompatibles, sí soporta aquellos que de otro modo requerirían muchos ajustes manuales tediosos.
¿Cómo funciona Solidity-upgrade?
Solidity-upgrade, que se basa en libsolidity, puede analizar sintácticamente, compilar y analizar tus archivos fuente para encontrar actualizaciones de código aplicables. Estas actualizaciones se consideran alteraciones textuales menores a tu código fuente. Se aplican sobre una réplica en memoria de los archivos fuente proporcionados.
La actualización tiene dos fases:
Primera fase
En primer lugar, dado que no es posible actualizar el código fuente a ese nivel durante el análisis sintáctico de los archivos fuente, los errores se recopilan y se pueden registrar usando la flag —verbose. Actualmente no hay actualizaciones de código disponibles en esta fase.
Segunda fase
En la segunda fase, se compilan todas las fuentes y se ejecutan todos los módulos de análisis de actualización activados junto con la compilación. Por defecto, todos los módulos disponibles están activados.
Los problemas de compilación pueden surgir a partir de solidity-upgrade, los cuales las actualizaciones de código son potencialmente capaces de resolver. Si no hay problemas, no se reporta ninguna actualización de código y el proceso termina. Si ocurren problemas y un módulo de actualización reportó una actualización de código, se aplica la primera actualización de código reportada y se inicia una recompilación para todos los archivos fuente proporcionados.
¿Qué es un decompilador de Solidity?
El decompilador de Solidity es una herramienta que toma código EVM de un smart contract compilado como entrada y lo decompila a código fuente similar a Solidity. El decompilador ayuda a verificar y entender el comportamiento de los contratos.
El decompilador de Solidity es útil para depurar smart contracts cuando el código original no está disponible. Sin embargo, la tecnología detrás de la decompilación de bytecode EVM aún está en desarrollo, ya que algunos de los decompiladores disponibles solo decompilan parcialmente los contratos complejos, y gran parte del código de bajo nivel suele faltar en la versión decompilada.
Decompiladores de la máquina virtual de Ethereum (EVM)
Aquí una lista de decompiladores de Solidity populares:
1. Ethervm.io
Ethervm.io es un decompilador en línea gratuito que decompila el bytecode de contratos de Ethereum a un código más legible, similar a Solidity.
Empezar: https://ethervm.io/decompile
2. JEB decompiler
El JEB decompiler ofrece capacidades específicas, como el análisis de código para determinar métodos sin acceso a un ABI. JEB se ha convertido en la herramienta preferida de auditores de seguridad, investigadores de vulnerabilidades e ingenieros inversos que investigan smart contracts opacos que corren en plataformas de Ethereum.
Empezar: https://www.pnfsoftware.com/jeb/manual/ethereum/
3. Decompilador en línea de Etherscan
El decompilador en línea de Etherscan es un decompilador para la máquina virtual de Ethereum (EVM) que extrae información del bytecode en tiempo de ejecución (Runtime bytecode) y la presenta en un formato más legible para humanos.
4. Evemedis, de Nick Johnson
Evemedis es un desensamblador de EVM. Realiza análisis estático sobre el bytecode para ofrecer un nivel de abstracción más alto que el de las operaciones EVM sin procesar.
Empezar: https://github.com/Arachnid/evmdis
5. Decurity
Decurity es un decompilador de ABI que implementa herramientas simples para recuperar el ABI de un smart contract EVM, incluyendo los nombres de funciones.
Empezar: https://github.com/Decurity/abi-decompiler
Reflexiones finales
Ahora entiendes qué son los compiladores de Solidity, cómo instalarlos y cómo compilar un contrato simple. La documentación de Solidity contiene más información sobre los compiladores de Solidity.
Si recién estás empezando a aprender Solidity, asegura tu lugar en el bootcamp de desarrollo Solidity de 7 semanas de Alchemy University para dominar los fundamentos del desarrollo en Ethereum en un curso en línea gratuito, interactivo y completo. 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 empezar un bootcamp de Ethereum. Si ya tienes los fundamentos cubiertos y quieres profundizar, revisa el nuevo curso de Solidity de Alchemy.
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.