# Run Espresso Infrastructure

There are three operator roles you can run against the Espresso Network. Each one serves a different purpose, has different hardware needs, and is run by a different kind of team.

## Pick your role

| Role               | Who runs it                                                         | What it does                                                                                                                                                          | Hardware                                                                                     |
| ------------------ | ------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
| **Validator node** | Stake operators (institutional and independent) earning ESP rewards | Participates in [HotShot consensus](/network/developer/the-espresso-network/properties-of-hotshot.md), finalizing blocks across the Espresso Network                  | 1 CPU core, 8 GB RAM (non-DA); 4+4 CPU, 8+4 GB RAM, 1.2 TB SSD (DA)                          |
| **Builder**        | Block proposers serving an Espresso chain's slot                    | Pulls transactions from the public mempool, assembles blocks, and submits them to Espresso for finalization                                                           | 2-4 CPU cores, 4-8 GB RAM                                                                    |
| **Caff Node**      | Chains and applications integrated with Espresso                    | Reads finalized blocks directly from Espresso and serves standard EVM JSON-RPC, so users see confirmed state within seconds without waiting for downstream settlement | Varies; see the [Caff Node Run](https://github.com/EspressoSystems/caff-node-run) repository |

## When to run which

* **You hold ESP and want to participate in consensus / earn rewards.** [Run a Validator Node](/network/developer/operators/run-a-node.md). You'll register in the stake table, attract delegations, and run the node software on the network of your choice.
* **You operate an Espresso-integrated chain and need to propose blocks.** [Run a Builder](/network/developer/operators/running-a-builder.md). The builder is the component that bundles transactions for your chain's namespace.
* **You operate a chain or application and need fast, low-latency reads of finalized state.** [Run a Caff Node](/network/developer/operators/running-caff-node.md). This is the read-side counterpart to the builder, exposing standard JSON-RPC.

## Related references

* [Networks](/network/network/networks.md): public endpoints and contract addresses for Mainnet 1 and Decaf Testnet.
* [Stake Table Contract](/network/developer/the-espresso-network/stake-table.md): how validator registration, delegation, and rewards work onchain.
* [Reading from Espresso](/network/developer/dapp/read-from-network.md): the conceptual basis for what a Caff Node provides.


---

# 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://docs.espressosys.com/network/developer/operators.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.
