Skip to main content
Geth (go-ethereum) is the Go implementation of the Ethereum execution layer protocol. It is the entry point into the Ethereum network — capable of running as a full node (default), archive node (retaining all historical state), or in developer mode for local testing. Geth exposes a JSON-RPC API over HTTP, WebSocket, and IPC, ships an interactive JavaScript console, and includes a rich Go library for building Ethereum applications programmatically.

Architecture overview

Since The Merge, Ethereum separates responsibilities between two layers:
  • Execution layer — handles transactions, state, and the EVM. Geth is an execution layer client.
  • Consensus layer — handles proof-of-stake block validation and finality (Beacon Chain). A separate consensus client is required.
Geth alone is not sufficient to participate in mainnet block validation post-Merge. You must pair it with a consensus client such as Prysm, Lighthouse, Lodestar, Nimbus, or Teku.

Hardware requirements

ComponentRequirement
CPU4+ cores
RAM8 GB
Storage1 TB free space
Network8 MBit/sec download

Included executables

The go-ethereum project ships several executables in the cmd/ directory:
ExecutableDescription
gethMain Ethereum CLI client. Full node, archive node, or dev mode. Exposes JSON-RPC over HTTP, WebSocket, and IPC.
clefStand-alone signing tool. Can be used as an external signer backend for geth.
devp2pUtilities for interacting with nodes at the networking layer without running a full blockchain.
abigenSource code generator that converts Ethereum contract ABIs into type-safe Go packages.
evmDeveloper utility for running EVM bytecode in a configurable environment. Useful for isolated opcode debugging.
rlpdumpConverts binary RLP-encoded data into a human-readable hierarchical representation.

Explore the docs

Installation

Install Geth on Linux, macOS, or Windows using package managers, pre-built binaries, or from source.

Quickstart

Connect to the Ethereum mainnet or a testnet and attach a console in minutes.

JSON-RPC API

Interact with your node over HTTP, WebSocket, or IPC using the standard Ethereum JSON-RPC API.

Go Library

Use the go-ethereum packages to build Ethereum-native applications in Go.

Build docs developers (and LLMs) love