A hands-on workshop guide for new developers by Odisha DAO


Why Go for Smart Contracts?

Go is one of the most popular programming languages for backend and cloud systems. ☁💻

This document provides a step-by-step guide to writing and deploying smart contracts in Go using Arbitrum Stylus.

⚠️ Note: Go on Stylus is experimental. The SDK is community-built, lacks official support, and currently has limited runtime features. Use for learning and prototyping only.


1. Prerequisites

Before we start, let’s set up the environment.

Install Go (TinyGo)

Stylus requires TinyGo to compile Go code into WebAssembly (WASM).

💡 What’s TinyGo?

TinyGo is a slimmed-down Go compiler designed for small devices and WASM. Regular Go is too heavy for blockchain smart contracts, so TinyGo makes it possible.

Follow instructions: https://tinygo.org/getting-started/

Example (macOS):

brew tap tinygo-org/tools
brew install tinygo

Install Rust

Rust is required for the Stylus CLI and for running interaction scripts (via ethers-rs).

curl --proto '=https' --tlsv1.2 -sSf <https://sh.rustup.rs> | sh

Install Stylus CLI