> For the complete documentation index, see [llms.txt](https://firehose.streamingfast.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://firehose.streamingfast.io/firehose/overview/chains/ethereum.md).

# 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)                                           |
| Monad Mainnet                    | [Monad](https://github.com/streamingfast/firehose-docs/blob/master/firehose-setup/ethereum/monad.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)
