Comment on page

Becoming a Go developer

Contracts running on Orbs are developed in the Go programming language. This page will help you set up a working Go environment on your machine.

Installing Go

The recommended way to install Go on Mac is with brew
brew install go
If you prefer a regular package installer instead, those are available here. If you run into trouble, go over the official Go installation instructions.

Verifying the installation

Verify Go is installed correctly by running in terminal
go version
Any version above 1.11 should suffice.

The Go workspace

Go creates a workspace on your machine where source files should be placed. This is a bit different from other programming languages which are less opinionated about the location of your source files.
Unless configured explicitly otherwise, your Go workspace is found at
The common convention is to place files in a directory structure that mirrors easily to Github. If your Github username is johnsnow and your repo name is mycontract you should place your files at
For more information about workspaces, consult the official Go documentation.

Choosing an editor

Working with an IDE that has good Go support is highly recommended for code completion, syntax highlighting and debugging.
Atom is an excellent free editor which has Go support through the go-plus plugin. You can install both by running in terminal
brew cask install atom
apm install go-plus
Another free alternative is VSCode, which supports Go out of the box. A commercial alternative is GoLand by JetBrains. For the complete list of editors consult the official Go documentation.

Learning Go

One of the main benefits of the Go programming language is its simplicity. It should not require more than a few days to gain a firm grasp of the syntax.
The official documentation contains a fantastic Tour of Go - an interactive tutorial that teaches the basics of the language in an hour or so. Another way to dive quickly into the language is using this cheat sheet which contains all syntax in one page.
If you don't feel like learning the language first that's also fine. Most of the contract examples are simple enough to understand without any prior knowledge.