4 min read - Posted 13 Nov 18

Tools for Working With Solidity

Recently a group of Blockchain enthusiasts at the co-working space I occasionally work from decided that it was time we stopped talking about Blockchain and actually learned how to create something based on it. We wanted to create a coin or token for the community to use internally, and whilst the project has stalled for now, I started investigating Ethereum in more depth, and the language it uses for creating smart contracts, Solidity . I will cover the language itself in more detail in the future (when I understand it more myself!), but in this post, I will cover some of the tools available for working with the language.

Your Language of Choice

Your starting point is the official Ethereum clients , available for all operating systems and in Go , C++ (Aleth) , Rust , and Python and JavaScript . All support the full breadth of classes and methods for Solidity and many of the other tools listed here will need them as dependencies.


Mix promised to be a fully-fledged Solidity IDE, but it never materialized and Remix is its the web-based alternative. You can lint, compile, debug, run, and analyze your Solidity code based on different versions of the Ethereum compiler. You can also run your own local copy of Remix in the browser, or as a browser extension.

article image


The official Ethereum wallet and mist applications allow you to deploy contracts to networks, but not much else, so you should make sure your code is finished before using them.

article image

JetBrains IDEs

If you use any of the IDEs based on the IntelliJ platform, then there’s a plugin available that supports formatting, snippets, and code completion.

Eclipse IDE

Papyrus is a UML modeling environment for the Eclipse IDE (and the Oxygen XML editor), and uml2solidity is a plugin for Papyrus that lets you convert UML models to Solidity. For experienced programmers who are new to smart contracts, this is a great way to model your ideas in languages that are familiar to you.


I am a big Atom fan, so I was delighted to find a selection of packages available with Solidity support. There’s the Solidity linter based on coding standards from the solc npm package , and the solium linter based on the solium project . They take different approaches to configuration, linter-solidity has far more users, and I couldn’t even get linter-solium to work, so that may make deciding between the two an easy choice. And finally, there’s autocomplete for Solidity and language-ethereum that adds support for Solidity and Serpent , another language you can use for creating smart contracts. The etheratom package lets you compile and deploy Solidity code from the editor, but it’s complicated to setup and you have to know what you’re doing as it requires several Ethereum related tools to already be installed, and working, on your machine.

article image

Visual Studio Code

A slightly smaller selection of extensions, but enough to get you started is the solidity language extension. The extension lints code using a selection of underlying linters and can compile code for you amongst other tasks.

Deployment Frameworks

You know when the development community has started to accept a language when it starts creating frameworks for it. Unsurprisingly Ethereum has a couple of options. Truffle claims to be the most popular option, supporting compilation, testing, deployment, and dependency management. Embark is similar, and also offers integration with IPFS for storage-based solutions and whisper for communications-based applications. Dapp is a simpler CLI tool for package management, testing, and deployment of smart contracts.

An Ecosystem of Constant Change

The blockchain space is in constant flux and thus a list of tools will not be comprehensive for the foreseeable future. If there’s anything missing from this list, please add it to the comments below.

Created with Sketch.Content is"CC-BY-SA 4.0" licensed
Article On-chain
Article Author

Chris Ward

Technical Content Lead




Related Articles
Tools for dApp development

This article will introduce you to the relevant tools required for developing a simple dApp. We will introduce tools in the following areas: Smart Contract Programming Languages Web3 Libraries Development frameworks IDEs Development blockchains Ethereum Networks Wallets (Key Stores) SaaS / Cloud Infra Data Storage Smart Contract Programming Languages Because a smart contract is deployed on the blockchain in its bytecode form, any language that comes with an EVM compiler could be used to write a

Josh Cassidy

16 Jan 19

Tools for working with Vyper

Tools for working with Vyper While Vyper lacks the tools options Solidity has, there are still a few you might fid useful. Vyper Online Compiler Vyper Online Compiler is an online editor for Vyper. Its web-based. It is currently in the experimental version. You can compile vyper codes, import vyper codes, save vyper codes to disk from it. It also has pre-written vyper codes that can serve as sample codes for you. Remix Vyper plugin Remix has a Vyper plugin for the language and compiler, enable i