# Step 4.3 ETH1 - Execution client selection

### What is an execution client?

An execution client plays a vital role in the Ethereum ecosystem, facilitating the deployment of smart contracts and the execution of transactions. These clients are responsible for transaction handling, transaction gossip, state management, and providing support for the Ethereum Virtual Machine ([EVM](https://ethereum.org/en/developers/docs/evm/)). They interpret and execute the [bytecode](https://ethereum.org/en/glossary/#bytecode) of smart contracts, ensuring their correct operation and compliance with the Ethereum protocol. Additionally, execution clients offer interfaces that enable developers and users to interact with smart contracts. By enabling the execution of smart contracts, these clients contribute to the decentralized and programmable nature of the Ethereum platform. [*Learn more*](https://ethereum.org/en/developers/docs/nodes-and-clients/node-architecture/#execution-clienthttps://ethereum.org/en/developers/docs/nodes-and-clients/node-architecture/#execution-client)

### If you have chosen the "Locally Managed" option during the ETH client configuration step, you can now select an Execution client from the provided options.

<figure><img src="https://2887552281-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9WB8WelcE8wl4vdsYf70%2Fuploads%2Fgit-blob-d2b7db47398d392c2cb20f0b610406b2c66db058%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

* **System-recommended:** Let Stader node arbitrarily choose from a wide range of network clients . This will enhance the network diversity and resilience of the Ethereum ecosystem.
* **Geth:** One of the most popular software clients maintained by the Ethereum Foundation, Geth is an open source CLI developed in the Go Programming Language. It is designed to be flexible and customizable, and it supports a wide range of functionalities such as secure key management, consensus mechanisms etc. [*Learn more*](https://geth.ethereum.org/)
* **Nethermind:** Nethermind is a high-performance Ethereum client built on .NET that offers fast sync speeds and advanced features for developers and end-users. While requiring over 8GB of RAM, it remains a reliable choice for running Ethereum nodes. [*Learn more*](https://nethermind.io/nethermind-client/)
* **Besu:** Besu, developed by ConsenSys and written in Java, is a comprehensive Ethereum protocol client. It utilizes an innovative storage system called "Bonsai Trees" to store its chain data effectively, enabling it to retrieve historical block states without the need for pruning. [*Learn more*](https://besu.hyperledger.org/en/stable/)

### If you have chosen the "Externally Managed" option during the ETH client configuration step, then just enter the **HTTP-based RPC API URL and Websocket-based RPC API URL for your current Execution client.**

<figure><img src="https://2887552281-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9WB8WelcE8wl4vdsYf70%2Fuploads%2Fgit-blob-9db185b8e807a26621a45618018115b5af75e835%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://staderlabs.gitbook.io/ethereum/node-operator/permissionless-node-operator/node-registration-and-adding-validators/step-4-configure-stader-services/step-4.3-eth1-execution-client-selection.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
