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.
package main
import (
"context"
"fmt"
"log"
"github.com/ethereum/go-ethereum/ethclient"
)
func main() {
client, err := ethclient.Dial("https://mainnet.infura.io/v3/YOUR_PROJECT_ID")
if err != nil {
log.Fatal(err)
}
defer client.Close()
header, err := client.HeaderByNumber(context.Background(), nil)
if err != nil {
log.Fatal(err)
}
fmt.Printf("Latest block number: %d\n", header.Number.Uint64())
fmt.Printf("Block hash: %s\n", header.Hash().Hex())
fmt.Printf("Block time: %d\n", header.Time)
}Security fix release that resolves two peer-to-peer network vulnerabilities discovered through the Ethereum Foundation bug bounty program.
- –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 release with Osaka hardfork timestamps and new RPC features.
- –BPO1 on 2025-12-09
- –BPO2 on 2026-01-07
- –Set mainnet timestamps for Osaka
- –Enable Fusaka for geth --dev mode
- –Add eth_sendRawTransactionSync which waits until either a timeout or the transaction is mined. This feature is mostly useful on L2s with lower blocktimes
Enables the Fusaka hardfork scheduled for December 2025 and adds new RPC features, but users are warned to use v1.16.7 instead.
- –Set mainnet timestamps for Osaka
- –Enable Fusaka for geth --dev mode
- –Add eth_sendRawTransactionSync which waits until either a timeout or the transaction is mined. This feature is mostly useful on L2s with lower blocktimes
- –Add support for eth_simulateV1 in ethclient
- –Fix for an issue that might crash debug_traceCall
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.