Go Ethereum: Golang Ethereum protocol implementation
Golang execution layer implementation of the Ethereum protocol, providing the geth client and developer tools.
Learn more about Go Ethereum
Go Ethereum is a Golang implementation of the Ethereum protocol's execution layer. It provides the geth client, which can operate as a full node, archive node, or light node on Ethereum networks. The implementation includes JSON RPC endpoints over HTTP, WebSocket, and IPC transports for blockchain interaction. It comes with developer utilities including contract ABI generators, EVM debugging tools, and P2P networking utilities.
Multiple Node Types
Supports full node, archive node, and light node configurations with different sync modes including snap sync for faster initial synchronization.
Developer Toolchain
Includes abigen for contract bindings, standalone EVM for bytecode debugging, and devp2p utilities for network layer interaction.
Multi-Transport RPC
Exposes JSON RPC endpoints over HTTP, WebSocket, and IPC transports with built-in JavaScript console for direct blockchain interaction.
# Install prerequisites: Go 1.23+ and C compiler
# Clone the repository
git clone https://github.com/ethereum/go-ethereum.git
cd go-ethereum
# Build just the geth client
make geth
# Or build all utilities (geth, clef, devp2p, abigen, evm, rlpdump)
make allMoisture Filters (v1.16.8)
- –Pre-built binaries for all platforms on our downloads page.
- –Docker images published under `ethereum/client-go` (use "stable" tag).
- –Ubuntu packages in our Launchpad PPA repository.
- –macOS packages in our Homebrew Tap repository.
Ballistic Drift Stabilizer (v1.16.7)
- –BPO1 on`2025-12-09`
- –BPO2 on `2026-01-07`
- –Set mainnet timestamps for Osaka (#33063)
- –Enable Fusaka for `geth --dev` mode (#32917)
- –Add `eth_sendRawTransactionSync` which waits until either a timeout or the transaction is mined. This feature is mostly useful on L2s with lower blocktimes. (#32830, #32930, #32929)
Leather Wrapping (v1.16.6)
- –Set mainnet timestamps for Osaka (#33063)
- –Enable Fusaka for `geth --dev` mode (#32917)
- –Add `eth_sendRawTransactionSync` which waits until either a timeout or the transaction is mined. This feature is mostly useful on L2s with lower blocktimes. (#32830, #32930, #32929)
- –Add support for `eth_simulateV1` in ethclient (#32856)
- –Fix for an issue that might crash `debug_traceCall` (#33015)
Related Repositories
Discover similar tools and frameworks used by developers
Hyperledger Fabric
Modular enterprise blockchain framework with permissioned networks, pluggable consensus, and privacy controls.
Foundry
A modular toolkit for Ethereum application development that includes compilation, testing, and deployment tools.
Solady
Collection of gas-optimized Solidity smart contract implementations for Ethereum development.
Lotus
Go-based reference implementation of the Filecoin distributed storage network protocol.
NEAR Core
Reference implementation of NEAR Protocol blockchain, providing infrastructure for smart contracts and applications.