Ethereum for Go Developers
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 Explained
- Understanding Smart Contracts
- Write your First Smart Contract
- Learn How to Compile and Deploy Solidity
- Contract Tutorial
Beginner Articles and Books
- Choosing an Ethereum Client
- Getting Started with Geth
- Use Golang to Connect to Ethereum
- Deploy Ethereum Smart Contracts Using Golang
- A Step By Step Guide To Testing and Deploying Ethereum Smart Contracts in Go
- eBook: Ethereum Development with Go - Develop Ethereum applications with Go
Intermediate Articles and Docs
- Go Ethereum Documentation - The documentation for the official Ethereum Golang
- Turbo-Geth Programmer's Guide - Illustrated guide including the state tree, multi-proofs, and transaction processing
- Turbo-Geth and Stateless Ethereum - 2020 Ethereum Community Conference (EthCC 3)
- Turbo-Geth: optimising Ethereum clients - 2018 Devcon 4
- Go Ethereum GoDoc
- Creating a Dapp in Go with Geth
- Work with Ethereum Private Network with Golang and Geth
- Unit testing Solidity contracts on Ethereum with Go
- Quick reference for using Geth as a library
Advanced Use Patterns
- The GETH Simulated Backend
- Blockchain-as-a-Service Apps Using Ethereum and Quorum
- Distributed Storage IPFS and Swarm in Ethereum Blockchain Applications
- Mobile Clients: Libraries and Inproc Ethereum Nodes
- Native DApps: Go bindings to Ethereum contracts
Go Projects and Tools
- Geth / Go Ethereum - Official Go implementation of the Ethereum protocol
- Go Ethereum Code Analysis - Review and analysis of Go Ethereum source code
- Turbo-Geth - Faster derivative of Go Ethereum
- Golem - Golem is creating a global market for computing power
- Quorum - A permissioned implementation of Ethereum supporting data privacy
- Prysm - Ethereum 'Serenity' 2.0 Go Implementation
- Eth Tweet - Decentralized Twitter: A microblogging service running on the Ethereum blockchain
- Plasma MVP Golang — Golang implementation and extension of the Minimum Viable Plasma specification
- Open Ethereum Mining Pool - An open source Ethereum mining pool
- Ethereum HD Wallet - Ethereum HD Wallet derivations in Go
- Multi Geth - Support for many species of Ethereum networks
- Geth Light Client - Light Ethereum Subprotocol's Geth implementation
Looking for more resources? Check out ethereum.org/developers
Go Community Contributors
- Geth Discord
- Geth Gist
- Gophers Slack - #ethereum channel
- StackExchange - Ethereum
- Multi Geth Gitter
- Ethereum Gitter
- Geth light Client Gitter
Other Aggregated Lists
Help us with this page
If you're an expert on the topic and want to contribute, edit this page and sprinkle it with your wisdom.
You'll be credited and you'll be helping the Ethereum community!
Use this flexible documentation template
Questions? Ask us in the #content channel on our Discord server
Edit page