# Deploy EVM contract

By [igormig.eth](https://paragraph.com/@igormig) · 2023-03-26

---

Deploying an EVM (Ethereum Virtual Machine) contract involves a series of steps that can be performed using a tool like Remix, Truffle, or Brownie. Here are the steps to deploy an EVM contract:

1.  Write the contract code: First, you need to write the contract code using Solidity, the most widely used programming language for writing smart contracts on Ethereum. You can use a text editor or an integrated development environment (IDE) like Remix to write your code.
    
2.  Compile the contract code: Once you have written your code, you need to compile it to ensure that it is free from syntax errors and that it conforms to the Solidity language specifications. You can use Remix or a command-line tool like solc to compile your code.
    
3.  Set up a development environment: To deploy your contract, you need to set up a development environment. This involves installing a client software like Geth or Parity, creating a new account, and connecting to the Ethereum network.
    
4.  Create a migration file: A migration file is a JavaScript file that contains instructions for deploying your contract. You can create a migration file using Truffle or Brownie, two popular development frameworks for Ethereum.
    
5.  Deploy the contract: To deploy your contract, you need to run the migration file using a command-line tool like Truffle or Brownie. This will send the contract code and other required data to the Ethereum network and create a new instance of the contract.
    
6.  Interact with the contract: Once you have deployed your contract, you can interact with it using a client software or a web interface like Remix. You can send transactions to the contract, query its state, and invoke its functions.
    

In summary, deploying an EVM contract involves writing the contract code, compiling it, setting up a development environment, creating a migration file, deploying the contract, and interacting with it.

---

*Originally published on [igormig.eth](https://paragraph.com/@igormig/deploy-evm-contract)*
