Integrated Development Environments (IDEs)
When it comes to setting up an integrated development environment (IDE)(opens in a new tab), programming applications on Ethereum is similar to programming any other software project. There are many options to choose from, so at the end of the day, pick the IDE or code editor that best suits your preferences. Most likely the best IDE choice for your Ethereum development is the IDE you already use for traditional software development.
If you're looking to fiddle with code before you set up a local development environment, these web apps are custom-built for Ethereum smart contract development.
Remix(opens in a new tab) - Web-based IDE with built in static analysis, and a test blockchain virtual machine
ChainIDE(opens in a new tab) - A cloud-based multi-chain IDE
Replit (Solidity Starter - Beta)(opens in a new tab) - A customizable development environment for Ethereum with hot reloading, error checking, and first-class testnet support
EthFiddle(opens in a new tab) - Web-based IDE that lets you write, compile, and debug your smart contract
Most established IDEs have built plugins to enhance the Ethereum development experience. At a minimum, they provide syntax highlighting for smart contract languages.
Visual Studio Code - Professional cross-platform IDE with official Ethereum support
- Visual Studio Code(opens in a new tab)
- Azure Blockchain Workbench(opens in a new tab)
- Code samples(opens in a new tab)
- GitHub(opens in a new tab)
Atom - A hackable text editor for the 21st Century
JetBrains IDEs (IntelliJ IDEA, etc.) - Essential tools for software developers and teams
Remix Desktop - Experience Remix IDE on your local machine
- solidity(opens in a new tab) - Ethereum Solidity Language for Visual Studio Code
- Solidity + Hardhat for VS Code(opens in a new tab) - Solidity and Hardhat support by the Hardhat team
- Prettier Solidity(opens in a new tab) - Code formatter using prettier
- Ethereum IDEs(opens in a new tab) - Alchemy's list of Ethereum IDEs
Know of a community resource that helped you? Edit this page and add it!