A hands-on workshop guide for new developers by Odisha DAO
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.
Before we start, let’s set up the environment.
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
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