Navigate:
Go Ethereum
~$GOE0.0%

Go Ethereum: Golang Ethereum protocol implementation

Golang execution layer implementation of the Ethereum protocol, providing the geth client and developer tools.

LIVE RANKINGS • 10:11 PM • STEADY
OVERALL
#353
98
CRYPTO
#20
14
30 DAY RANKING TREND
ovr#353
·Crypt#20
STARS
50.8K
FORKS
21.8K
7D STARS
+16
7D FORKS
+6
Tags:
See Repo:
Share:

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.

Go Ethereum

1

Multiple Node Types

Supports full node, archive node, and light node configurations with different sync modes including snap sync for faster initial synchronization.

2

Developer Toolchain

Includes abigen for contract bindings, standalone EVM for bytecode debugging, and devp2p utilities for network layer interaction.

3

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)
}


vv1.16.8

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
vv1.16.7

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
vv1.16.6

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


[ EXPLORE MORE ]

Related Repositories

Discover similar tools and frameworks used by developers