Published in


Blockwatch: 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, . 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 , available for all operating systems and in , , , and . All support the full breadth of classes and methods for Solidity and many of the other tools listed here will need them as dependencies.

There is an unofficial client for . The repository I linked to is out of date, but it contains a useful reference to where to now find the libraries you need.


Mix promised to be a fully-fledged Solidity IDE, but it never materialized and 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 in the browser, or as a browser extension.


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

JetBrains IDEs

If you use any of the IDEs based on the IntelliJ platform, then 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 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 based on coding standards from the , and based on . 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 and that adds support for Solidity and , another language you can use for creating smart contracts.

The 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.

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.

claims to be the most popular option, supporting compilation, testing, deployment, and dependency management.

is similar, and also offers integration with for storage-based solutions and or for communications-based applications.

is a simpler CLI tool for package management, testing, and deployment of smart contracts.

For more enterprise-like projects, offers a full-stack platform for creating private blockchain applications that promise to fit into any of your existing toolchains.

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.

Originally published at .



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Chris Chinchilla

I explain cool tech to the World. I am a Technical Writer and blogger. I have crazy projects in progress and will speak to anyone who listens.