ethereum /go-ethereum

Go implementation of the Ethereum protocol

★ 51,473⑂ 22,109👁 2,200⑃ 14,813● 8,788▤ 237◈ 0
GoLGPL-3.0Created 2013-12-26geth.ethereum.org
51,473
stars
+5
22,109
forks
2,200
watchers
14,813
prs
8,788
issues
237
releases
0
discussions

README

Go Ethereum

Golang execution layer implementation of the Ethereum protocol.







Automated builds are available for stable releases and the unstable master branch. Binary
archives are published at https://geth.ethereum.org/downloads/.

 Building the source

For prerequisites and detailed build instructions please read the Installation Instructions.

Building geth requires both a Go (version 1.25 or later) and a C compiler. You can install
them using your favourite package manager. Once the dependencies are installed, run

shell
make geth


or, to build the full suite of utilities:

shell
make all


 Executables

The go-ethereum project comes with several wrappers/executables found in the cmd
directory.

|  Command   | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| :--------: | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| geth | Our main Ethereum CLI client. It is the entry point into the Ethereum network (main-, test- or private net), capable of running as a full node (default) or archive node (retaining all historical state). It can be used by other processes as a gateway into the Ethereum network via JSON RPC endpoints exposed on top of HTTP, WebSocket and/or IPC transports. geth --help and the CLI page for command line options. |
|  devp2p  | Utilities to interact with nodes on the networking layer, without running a full blockchain.                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|  abigen  | Source code generator to convert Ethereum contract definitions into easy-to-use, compile-time type-safe Go packages. It operates on plain Ethereum contract ABIs with expanded functionality if the contract bytecode is also available. It accepts contract AB

Top issues

Latest release

Soil Reducer (v1.17.10) v1.17.10 2026-10-23
This is a quick release that postpones the Amsterdam fork on the Hoodi testnet, previously scheduled for Oct 26, 2026, 17:42:48 UTC. Hoodi node operators running v1.17.9 must upgrade before then. A new date will be set in a future release; other networks are unaffected.

Snap sync now switches to snap/2 automatically once Amsterdam is active. Use --snap.v2=false or --snap.v2=true to force a protocol.

 Changes

- Cancel the Amsterdam activation on Hoodi (36001)
- Use snap/2 automatically once Amsterdam is active (35989)
- Optimize DUP/SWAP dispatch in the interpreter (35959)

For a f

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON