Chainlink core node and contracts for running a decentralized oracle network that brings real-world data and off-chain computation to smart contracts.
ethereum/go-ethereum
Go implementation of the Ethereum execution layer, running as a full or archive node with JSON-RPC access and developer tools.
- Stars
- 51,404
- Forks
- 22,116
- Open issues
- 480
- Last commit
- 9 hours ago
What is it?
go-ethereum (geth) is the Go implementation of the Ethereum execution layer. Its main binary, geth, connects to the main network or test networks such as Sepolia, syncs chain state, and can run as a full node by default or as an archive node that keeps all historical state.
Geth exposes the standard Ethereum JSON-RPC API along with its own management APIs over HTTP, WebSocket and IPC. It also includes an interactive JavaScript console for sending transactions, creating accounts and deploying contracts. Companion tools cover contract binding generation with abigen, EVM bytecode debugging with evm, RLP inspection with rlpdump, and low-level networking checks with devp2p.
For local development, geth offers a single-node dev mode and a simulated backend for testing contracts in Go, and Kurtosis can spin up multi-node test networks. Running a node on the post-Merge network also requires a consensus layer client alongside it.
Key features
- 01Runs as a full node by default or an archive node that retains all historical state.
- 02Serves standard Ethereum JSON-RPC over HTTP, WebSocket and IPC.
- 03Includes an interactive JavaScript console for interacting with the network.
- 04Provides abigen to generate type-safe Go bindings from contract ABIs.
- 05Ships developer utilities such as the evm bytecode runner and rlpdump.
- 06Supports the main network and test networks including Sepolia, plus private networks.
Use cases
- Running an Ethereum node to read chain data or submit transactions.
- Generating Go bindings for smart contracts used in backend services.
- Debugging EVM opcodes step by step with the evm utility.
- Setting up a local dev chain or multi-node test network for contract testing.
Quick start
- 1
Install Go 1.25 or later and a C compiler, then build geth from source
make geth - 2
Run geth and open the interactive console to sync with Ethereum mainnet
geth console - 3
Alternatively, run geth in Docker using the official image
docker run -d --name ethereum-node -v /Users/alice/ethereum:/root -p 8545:8545 -p 30303:30303 ethereum/client-go
Things to know
- Running a full node needs substantial hardware, at least 2TB of SSD space and 8GB RAM.
- Building from source requires Go 1.25 or later and a C compiler.
Topics
FAQ
- What is go-ethereum?
- Go implementation of the Ethereum execution layer, running as a full or archive node with JSON-RPC access and developer tools. go-ethereum (geth) is the Go implementation of the Ethereum execution layer. Its main binary, geth, connects to the main network or test networks such as Sepolia, syncs chain state, and can run as a full node by default or as an archive node that keeps all historical state.
- Is go-ethereum free to use? What license does it have?
- go-ethereum is open source under the LGPL-3.0 license. Check the license terms before using it in commercial products.
- Is go-ethereum still maintained?
- Actively maintained. The last commit to go-ethereum was on Oct 21, 2026.
- What can I use go-ethereum for?
- Running an Ethereum node to read chain data or submit transactions. Generating Go bindings for smart contracts used in backend services. Debugging EVM opcodes step by step with the evm utility. Setting up a local dev chain or multi-node test network for contract testing.
- How do I install go-ethereum?
- Install Go 1.25 or later and a C compiler, then build geth from source: make geth Run geth and open the interactive console to sync with Ethereum mainnet: geth console Alternatively, run geth in Docker using the official image: docker run -d --name ethereum-node -v /Users/alice/ethereum:/root -p 8545:8545 -p 30303:30303 ethereum/client-go
- Where can I get go-ethereum?
- The source code and installation instructions are on GitHub: https://github.com/ethereum/go-ethereum
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Rust-based toolkit for Ethereum smart contract development, with Forge, Cast, Anvil and Chisel for building, testing, and interacting with EVM chains.
A pure Go implementation of the WebRTC API for building real-time audio, video and data peer-to-peer connections.
A Go-based blockchain system platform for building dApps, DeFi, DAO and cross-chain applications with smart contracts, database tables and interfaces.
Solidity is a statically-typed, contract-oriented programming language for writing smart contracts on the Ethereum platform.
The second edition of "Mastering Ethereum", a book covering Ethereum development, smart contracts, and the network's underlying technology.