Nethermind is a high-performance Ethereum execution client built on .NET. It provides fast sync, high-throughput JSON-RPC, and a plugin system for extending the client without forking. In production since 2017.
Runs on Linux, Windows, and macOS.
Ethereum · Gnosis · Optimism · Base · Taiko · World Chain · Linea · Energy Web
Nethermind documentation is available at docs.nethermind.io.
Nethermind connects operators to the Ethereum network via JSON-RPC over HTTP, WebSocket, and IPC. Snap sync, enabled by default, reaches the chain tip up to 10x faster than traditional fast sync. Node health and performance are exposed through a built-in UI and Prometheus metrics.
-
Performance: The EVM is optimized for low-overhead block processing: direct opcode dispatch, hardware-accelerated bitwise operations, and zero heap allocation on the execution stack. A parallel pre-execution system warms state reads before a block's main loop, cutting block processing time roughly in half.
-
Modularity: Every component of the Nethermind is independently extendable without forking the codebase. The plugin system lets teams add consensus algorithms, transaction types, network protocols, and RPC namespaces through a .NET assembly that loads on startup. Nethermind uses this same system internally for L2 network support and health checks.
-
Client diversity: The Ethereum protocol becomes more resilient when no single node implementation dominates. A bug in any one implementation cannot cause the network to finalize a bad block if multiple independent clients are running.
-
L2 and rollup native: Each supported L2 network is implemented as a plugin, so the core stays untouched. For OP Stack operators, a rollup node is built directly into the client, fully replacing the separate
op-nodeand cutting services from two down to one. -
ZK-readiness: ZK proving is being built directly into the production execution client. Execution witness capture, stateless block replay, and a minimal EVM binary are complete. See the ZK roadmap for current status.
Standalone release builds are available on GitHub Releases. For hardware requirements, see System requirements.
Migrating from Geth? Nethermind supports the same JSON-RPC API. See the migration guide.
-
Linux
On Debian-based distros, Nethermind can be installed via Launchpad PPA:
sudo add-apt-repository ppa:nethermindeth/nethermind # If command not found, run # sudo apt-get install software-properties-common sudo apt-get install nethermind
-
Windows
On Windows, Nethermind can be installed via Windows Package Manager:
winget install --id Nethermind.Nethermind -
macOS
On macOS, Nethermind can be installed via Homebrew:
brew tap nethermindeth/nethermind brew install nethermind
Once installed, Nethermind can be launched as follows:
nethermind -c mainnet --data-dir path/to/data/dirFor full setup instructions, see Running a node. To spin up Nethermind alongside a consensus client in one command, see Sedge.
The official Docker images of Nethermind are available on Docker Hub and tagged as follows:
latest: the latest version of Nethermind (the default tag)latest-chiseled: a rootless and chiseled image of the latest version of Nethermindx.x.x: a specific version of Nethermindx.x.x-chiseled: a rootless and chiseled image of the specific version of Nethermind
For more info, see Installing Nethermind.
This is the easiest and fastest way to build Nethermind if you don't want to clone the Nethermind repo, deal with .NET SDK installation, and other configurations. Running the following simple command builds the Docker image, which is ready to run right after:
docker build https://github.com/nethermindeth/nethermind.git -t nethermindFor more info, see Building Docker image.
Prerequisites
Install .NET SDK 10 or later.
Clone the repository
git clone --recursive https://github.com/nethermindeth/nethermind.gitBuild and run
cd nethermind/src/Nethermind/Nethermind.Runner
dotnet run -c release -- -c mainnetTest
cd nethermind/src/Nethermind
# Run Nethermind tests
dotnet test --solution Nethermind.slnx -c release
# Run Ethereum Foundation tests
dotnet test --solution EthereumTests.slnx -c releaseFor more info, see Building standalone binaries.
Nethermind's plugin system lets teams extend the client without touching the core. This is the same system used internally for L2 network support, health checks, Shutter, and more. Plugins are loaded on startup and can provide:
- New consensus engines
- Custom transaction types and RLP decoders
- New P2P protocol handlers
- Additional JSON-RPC namespaces
See the plugin development guide for a full lifecycle walkthrough, configuration auto-mapping, and working examples. Join the plugin development channel on Discord.
Check out the docs first. If the answer is not there, see:
- Discord for community support
- GitHub Discussions for questions and proposals
- GitHub Issues to report an issue
Before you start working on a feature or fix, please read and follow our contributing guidelines to help avoid any wasted or duplicate effort.
If you believe you have found a security vulnerability in our code, please report it to us as described in our security policy.
Nethermind is an open-source software licensed under the LGPL-3.0. By using this project, you agree to abide by the license and additional terms.
