Ethereum for Go developers
Page last update: August 29, 2024
Learn how to develop for Ethereum using Go-based projects and tooling
Use Ethereum to create decentralized applications (or "dapps"). These dapps can be trustworthy, meaning that once they are deployed to Ethereum, they will always run as programmed. They are decentralized, meaning that they run on a peer-to-peer network and there is no single point of failure. No single entity or person controls them and they are nearly impossible to censor. They can control digital assets in order to create new kinds of applications.
Getting started with smart contracts and the Solidity language
Take your first steps to integrating Go with Ethereum
Need a more basic primer first? Check out ethereum.org/learn or ethereum.org/developers.
- Blockchain Explainedopens in a new tab
- Understanding Smart Contractsopens in a new tab
- Write your First Smart Contractopens in a new tab
- Learn How to Compile and Deploy Solidityopens in a new tab
- Contract Tutorialopens in a new tab
Beginner articles and books
- Getting Started with Gethopens in a new tab
- Use Golang to Connect to Ethereumopens in a new tab
- Deploy Ethereum Smart Contracts Using Golangopens in a new tab
- A Step By Step Guide To Testing and Deploying Ethereum Smart Contracts in Goopens in a new tab
- eBook: Ethereum Development with Goopens in a new tab - Develop Ethereum applications with Go
Intermediate articles and docs
- Go Ethereum Documentationopens in a new tab - The documentation for the official Ethereum Golang
- Erigon Programmer's Guideopens in a new tab - Illustrated guide including the state tree, multi-proofs, and transaction processing
- Erigon and Stateless Ethereumopens in a new tab - 2020 Ethereum Community Conference (EthCC 3)
- Erigon: optimising Ethereum clientsopens in a new tab - 2018 Devcon 4
- Go Ethereum GoDocopens in a new tab
- Creating a dapp in Go with Gethopens in a new tab
- Work with Ethereum Private Network with Golang and Gethopens in a new tab
- Unit testing Solidity contracts on Ethereum with Goopens in a new tab
- Quick reference for using Geth as a libraryopens in a new tab
Advanced use patterns
- The GETH Simulated Backendopens in a new tab
- Blockchain-as-a-Service Apps Using Ethereum and Quorumopens in a new tab
- Distributed Storage IPFS and Swarm in Ethereum Blockchain Applicationsopens in a new tab
- Mobile Clients: Libraries and Inproc Ethereum Nodesopens in a new tab
- Native dapps: Go bindings to Ethereum contractsopens in a new tab
Go projects and tools
- Geth / Go Ethereumopens in a new tab - Official Go implementation of the Ethereum protocol
- Go Ethereum Code Analysisopens in a new tab - Review and analysis of Go Ethereum source code
- Erigonopens in a new tab - Faster derivative of Go Ethereum, with a focus on archive nodes
- Golemopens in a new tab - Golem is creating a global market for computing power
- Quorumopens in a new tab - A permissioned implementation of Ethereum supporting data privacy
- Prysmopens in a new tab - Ethereum 'Serenity' 2.0 Go Implementation
- Eth Tweetopens in a new tab - Decentralized Twitter: A microblogging service running on the Ethereum blockchain
- Plasma MVP Golangopens in a new tab — Golang implementation and extension of the Minimum Viable Plasma specification
- Open Ethereum Mining Poolopens in a new tab - An open source Ethereum mining pool
- Ethereum HD Walletopens in a new tab - Ethereum HD Wallet derivations in Go
- Multi Gethopens in a new tab - Support for many species of Ethereum networks
- Geth Light Clientopens in a new tab - Light Ethereum Subprotocol's Geth implementation
- Ethereum Golang SDKopens in a new tab - A simple Ethereum wallet implementation and utilities in Golang
- Covalent Golang SDKopens in a new tab - Efficient blockchain data access via Go SDK for 200+ blockchains
Looking for more resources? Check out ethereum.org/developers
Go community contributors
- Geth Discordopens in a new tab
- Geth Gistopens in a new tab
- Gophers Slackopens in a new tab - #ethereum channelopens in a new tab
- StackExchange - Ethereumopens in a new tab
- Multi Geth Gitteropens in a new tab
- Ethereum Gitteropens in a new tab
- Geth light Client Gitteropens in a new tab