O que é o compilador Solidity?
Escrito por Daniel Idowu
Desenvolvedores Ethereum escrevendo smart contracts em Solidity precisam compilar seu código para que a Ethereum Virtual Machine (EVM) possa entender e executar os comandos apropriados. O compilador Solidity converte o código em uma coleção de instruções em bytes.
Solidity é a linguagem de programação da Ethereum, a segunda maior criptomoeda por capitalização de mercado. Solidity é uma linguagem de programação de alto nível criada especificamente para colocar smart contracts em ação. Além disso, Solidity é uma linguagem orientada a contratos e orientada a objetos, com objetos de tipagem estática.
Neste artigo, vamos apresentar o compilador Solidity, como instalar compiladores Solidity, ferramentas de compilação Solidity e até mesmo decompiladores disponíveis publicamente.
O que é o compilador Solidity?
Existem dois compiladores Solidity: solc e solc.js, que é derivado do solc. O compilador Solidity propriamente dito, o solc, é escrito em C++ e está na versão 0.8.16 no momento deste artigo. O solc.js usa o Emscripten para compilar o código C++ em JavaScript. O solc é compilado para JavaScript a cada versão.
Arquivos Solidity são compilados usando a biblioteca Node.js e a ferramenta de linha de comando conhecida como solcjs. Ela usa apenas JavaScript para a compilação, em vez do compilador de linha de comando solc, o que torna sua instalação mais simples que a do solc.
Antes que smart contracts possam ser implantados, eles precisam ser compilados em bytecode para a EVM (Ethereum Virtual Machine). Bytecode é a informação para a qual o código Solidity é "traduzido", e contém instruções binárias para o computador.
Na Ethereum, o bytecode é o que é implantado na blockchain. A compilação também gera uma ABI (Application Binary Interface), que é uma interface entre dois módulos de programa, geralmente entre sistemas operacionais e programas do usuário.

Contratos são compilados em bytecode que é executado na EVM. Esse bytecode é implantado na blockchain e salvo em um endereço. Ele é então tornado público e fica disponível para que qualquer pessoa interaja com ele. Um endereço identifica uma instância de contrato implantada, que também mantém armazenamento persistente para preservar o estado interno do contrato. O Ether, a criptomoeda nativa da Ethereum, é usado como reserva de valor, como método de pagamento pela execução de smart contracts na blockchain e como recompensa para os mineradores que mantêm a rede Ethereum segura.
A seguir, um exemplo rápido de como um contrato é compilado.
Vamos compilar esse código usando o Remix, uma IDE Ethereum online popular, para que não precisemos instalar nenhuma ferramenta em nossa máquina local.
Na imagem abaixo, você deve notar as setas rosa e roxa na parte inferior da imagem, apontando respectivamente para a ABI e para o bytecode. ABIs são representadas em JSON.

Como instalar o compilador Solidity
Ao aprender Solidity, você pode querer instalar um compilador Solidity. Existem várias formas convenientes de instalar o compilador Solidity. Um método fácil é usar o Remix, onde você tem a opção de usá-lo online. No entanto, ele é projetado para contratos pequenos e tem poucas opções de compilação.
Para contratos maiores, você pode instalar o compilador Solidity usando npm/Node.js, Docker, pacotes para Linux, MacOS e a partir de binários estáticos.
Método 1: instalar usando npm/node.js
O compilador Solidity, também conhecido como solc, pode ser instalado usando npm. O comando abaixo instalará o programa solcjs e o disponibilizará em todo o sistema.
Agora você pode testar seu compilador Solidity executando o comando a seguir.
Agora você está pronto para usar o solcjs, que tem menos recursos que o compilador Solidity padrão, mas fornecerá um bom ponto de partida.
Método 2: instalar usando Docker
Para começar a programar em Solidity, você pode baixar uma imagem Docker e usá-la. Como a imagem Docker executa o executável do compilador, você pode passar a ele qualquer argumento de compilador.
O comando para baixar uma imagem Docker do Solidity é o seguinte.
Depois de baixar uma imagem Docker, execute o comando a seguir para verificá-la.
Para compilar arquivos Solidity na máquina host usando a imagem Docker, monte uma pasta local para entrada e saída e especifique o contrato a ser compilado.
Método 3: instalar usando pacotes binários (MacOS, linux)
Instalação no MacOS
Podemos usar o Homebrew para instalar o Solidity no MacOS. Isso nos fornece pacotes macOS compilados a partir do código-fonte, e basta seguir as instruções de instalação.
Após a conclusão da execução, podemos verificar se o Solidity foi instalado com sucesso executando o comando abaixo.
Você deve receber uma saída como esta:

Instalação no Linux
Instalar pacotes no Linux é um procedimento bem simples que pode ser feito em poucos passos. Primeiro, adicione o repositório à nossa lista de repositórios.
Em seguida, atualize a lista de pacotes e instale o solc. Se quisermos usar o build nightly em vez da última versão estável, devemos alterar a entrada do repositório para ethereum/ethereum-dev.
Compilando um smart contract Solidity de exemplo
O código a seguir usa nosso contrato de exemplo fornecido acima.
Para compilar um contrato, podemos executar o código a seguir.
Para usar uma versão específica da EVM na compilação do nosso contrato, podemos definir a versão da seguinte forma.
O que é o Solidity-upgrade?
O solidity-upgrade permite que você atualize seus contratos para refletir mudanças que quebram compatibilidade na linguagem. Embora não faça, e não possa fazer, todos os ajustes necessários para cada release que quebra compatibilidade, ele ainda assim suporta aqueles que, de outra forma, exigiriam muitos ajustes manuais tediosos.
Como o Solidity-upgrade funciona?
O Solidity-upgrade, que é baseado em libsolidity, pode analisar sintaticamente, compilar e analisar seus arquivos-fonte para encontrar atualizações de código-fonte aplicáveis. As atualizações de código-fonte são consideradas pequenas alterações textuais no seu código-fonte. Elas são aplicadas a uma réplica em memória dos arquivos-fonte fornecidos.
A atualização tem duas fases:
Primeira fase
Primeiramente, como não é possível atualizar o código-fonte nesse nível durante a análise sintática dos arquivos-fonte, os erros são coletados e podem ser registrados usando a flag —verbose. Atualmente, não há atualizações de código-fonte disponíveis.
Segunda fase
Na segunda fase, todos os arquivos-fonte são compilados e todos os módulos de análise de atualização ativados são executados junto com a compilação. Por padrão, todos os módulos disponíveis são ativados.
Problemas de compilação podem surgir a partir do solidity-upgrade, os quais as atualizações de código-fonte podem potencialmente corrigir. Se não houver problemas, nenhuma atualização de código-fonte é reportada, e o processo está concluído. Se ocorrerem problemas e uma atualização de código-fonte tiver sido reportada por um módulo de atualização, a primeira atualização de código-fonte reportada é aplicada e a recompilação é iniciada para todos os arquivos-fonte fornecidos.
O que é um decompilador Solidity?
O decompilador Solidity é uma ferramenta que recebe como entrada código EVM de um smart contract compilado e o decompila em um código-fonte semelhante a Solidity. O decompilador ajuda a verificar e entender o comportamento dos contratos.
O decompilador Solidity é útil para depurar smart contracts nos casos em que o código original não está disponível. No entanto, a tecnologia por trás da decompilação de bytecode EVM ainda está em desenvolvimento, já que alguns dos decompiladores disponíveis decompilam apenas parcialmente contratos complexos, e boa parte do código de baixo nível frequentemente fica ausente na versão decompilada.
Decompiladores da Ethereum virtual machine (EVM)
Aqui está uma lista de decompiladores Solidity populares:
1. Ethervm.io
Ethervm.io é um decompilador online gratuito que decompila bytecode de contratos Ethereum em código mais legível, semelhante a Solidity.
Comece agora: https://ethervm.io/decompile
2. JEB decompiler
O JEB decompiler oferece capacidades específicas, como análise de código para determinar métodos sem acesso a uma ABI. O JEB se tornou a ferramenta preferida de auditores de segurança, pesquisadores de vulnerabilidades e engenheiros reversos que investigam smart contracts opacos rodando em plataformas Ethereum.
Comece agora: https://www.pnfsoftware.com/jeb/manual/ethereum/
3. Decompilador online do Etherscan
O decompilador online do Etherscan é um decompilador para a Ethereum Virtual Machine (EVM) que extrai informações do bytecode de runtime e as apresenta em um formato mais legível para humanos.
4. Evemedis, de Nick Johnson
Evemedis é um disassembler de EVM. Ele realiza análise estática no bytecode para fornecer um nível de abstração mais alto do que as operações EVM em estado bruto.
Comece agora: https://github.com/Arachnid/evmdis
5. Decurity
Decurity é um decompilador de ABI que implementa ferramentas simples para recuperar a ABI de smart contracts EVM, incluindo nomes de funções.
Comece agora: https://github.com/Decurity/abi-decompiler
Considerações finais
Agora você entende o que são os compiladores Solidity, como instalá-los e como compilar um contrato simples. A documentação do Solidity contém mais informações sobre compiladores Solidity.
Se você está apenas começando a aprender Solidity, garanta sua vaga no bootcamp de desenvolvedor Solidity de 7 semanas da Alchemy University para dominar os fundamentos do desenvolvimento em Ethereum em um curso online gratuito, interativo e abrangente. Se os desenvolvedores forem novos no desenvolvimento em geral, o curso intensivo de JavaScript de 3 semanas da Alchemy University é um ótimo pré-requisito antes de começar um bootcamp de Ethereum. Se você já domina o básico e quer se aprofundar, confira o novo curso de Solidity da Alchemy
Visões gerais relacionadas
Solidity3 de dezembro de 2025
As 6 melhores IDEs de Solidity para desenvolvedores (2026)
Conheça as melhores IDEs para desenvolvimento em Solidity.
Solidity19 de novembro de 2025
Otimização de gas em Solidity: 12 técnicas para deixar seus smart contracts mais baratos e eficientes
Quer escrever código melhor e reduzir suas taxas de gas?
Solidity13 de novembro de 2025
12 boas práticas de segurança para smart contracts em Solidity
Proteja seus smart contracts com essas dicas e ferramentas de segurança de especialistas.

Construa magia blockchain
A Alchemy combina os produtos e ferramentas de desenvolvimento Web3 mais poderosos com recursos, comunidade e suporte lendário.