# Ethereum

This page covers Reader Node configuration for Ethereum and EVM-compatible chains. For general Firehose architecture and deployment, see the [Single Machine Deployment](/firehose/overview/single-machine-deployment.md) or [Distributed Deployment](/firehose/overview/distributed-deployment.md) guides.

{% hint style="warning" %}
This guide does not cover how to sync an Ethereum node. For node synchronization, storage requirements, and network configuration, refer to the official documentation of your chosen client.
{% endhint %}

## Binary & Releases

| Component | Repository                                                              | Binary    |
| --------- | ----------------------------------------------------------------------- | --------- |
| Firehose  | [firehose-ethereum](https://github.com/streamingfast/firehose-ethereum) | `fireeth` |

The `fireeth` binary includes all `firecore` functionality plus Ethereum-specific features and commands. Download releases from the [GitHub releases page](https://github.com/streamingfast/firehose-ethereum/releases) or use published Docker images from [GitHub Container Registry](https://github.com/streamingfast/firehose-ethereum/pkgs/container/firehose-ethereum).

{% hint style="info" %}
For Reader Nodes, each network provides bundle Docker images containing both `fireeth` and the network's Firehose-patched node binary. See the [network-specific guides](#supported-networks) below for Docker image references.
{% endhint %}

## Supported Networks

Firehose for Ethereum supports **Geth and Geth forks**. Each network requires a Firehose-patched version of its client:

| Network                          | Guide                                                             |
| -------------------------------- | ----------------------------------------------------------------- |
| Ethereum Mainnet, Sepolia, Hoodi | [Ethereum Mainnet](/firehose/overview/chains/ethereum/mainnet.md) |
| Arbitrum One, Nova               | [Arbitrum](/firehose/overview/chains/ethereum/arbitrum.md)        |
| Base Mainnet, Sepolia            | [Base](/firehose/overview/chains/ethereum/base.md)                |
| BNB Smart Chain                  | [BNB Smart Chain](/firehose/overview/chains/ethereum/bsc.md)      |
| Katana                           | [Katana](/firehose/overview/chains/ethereum/katana.md)            |
| Optimism Mainnet, Sepolia        | [Optimism](/firehose/overview/chains/ethereum/optimism.md)        |
| Polygon PoS                      | [Polygon](/firehose/overview/chains/ethereum/polygon.md)          |
| Unichain                         | [Unichain](/firehose/overview/chains/ethereum/unichain.md)        |
| Worldchain                       | [Worldchain](/firehose/overview/chains/ethereum/worldchain.md)    |

## Common Configuration

All Ethereum-based networks share these characteristics:

### Chain Name (The Graph Network Registry)

Only `--advertise-chain-name` needs to be specified. All other advertise fields (block ID encoding, chain aliases, etc.) are automatically derived from [The Graph Network Registry](https://thegraph.com/networks/).

```bash
--advertise-chain-name="<chain-name>"
```

### VM Trace Flag

The Firehose-patched Geth (and forks) require the `--vmtrace=firehose` flag to emit Firehose Protocol logs to stdout.

### Basic Reader Node Pattern

```bash
fireeth start reader-node <apps> \
  --reader-node-path="<path-to-geth-binary>" \
  --reader-node-arguments="--vmtrace=firehose --datadir={node-data-dir} <network-flags>" \
  --advertise-chain-name="<chain-name>" \
  <other_flags...>
```

## Resources

* [firehose-ethereum GitHub](https://github.com/streamingfast/firehose-ethereum)
* [The Graph Network Registry](https://thegraph.com/networks/)
* [Geth Documentation](https://geth.ethereum.org/docs)


---

# 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://firehose.streamingfast.io/firehose/overview/chains/ethereum.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.
