# Start Your Engine API for Merge™

By [detoo](https://paragraph.com/@detoo-2) · 2022-09-04

---

![--authrpc.port=8551](https://storage.googleapis.com/papyrus_images/52aa12e67129b2fb733e14c4b6c5a135bf682e97bcfca8ecc6a593d71f3dd48d.png)

\--authrpc.port=8551

Merge™ is coming. Most of us have probably already heard of the renaming and the introduction of Execution Client (ex. Geth) and the Consensus Client (ex. Lighthouse Beacon Node). It also introduced a new interface called Engine API. As a pre-merge validator, what exactly has changed? How do I upgrade it and verify if it is ready for merge?

> Below assumes we have existing (pre-merge) nodes running and will focus only on the changes.

Execution Client
================

There are multiple options for running an Execution Client. I’ll focus on `geth` here.

The current merge-ready `geth` version is [v1.10.23](https://github.com/ethereum/go-ethereum/releases/tag/v1.10.23) as of writing. Upgrading from a pre-merge `geth` version you need to add the following arguments:

    --authrpc.addr=localhost
    --authrpc.port=8551
    

Note if you are running Beacon nodes or Validator nodes in a container, you might want to add the extra arguments so that [incoming requests from virtual hosts are accepted](https://geth.ethereum.org/docs/interface/consensus-clients):

    --authrpc.vhosts="*"
    

Restart `geth`, if everything runs properly you will see:

    WARN Chain pre-merge, sync via PoW (ensure beacon client is ready)
    ...
    WARN Engine API enabled                       protocol=eth
    WARN Engine API started but chain not configured for merge yet
    ...
    INFO Generated JWT secret                     path=/home/you/.ethereum/geth/jwtsecret
    ...
    INFO WebSocket enabled                        url=ws://127.0.0.1:8551
    INFO HTTP server started                      endpoint=127.0.0.1:8551 auth=true  prefix= cors=localhost vhosts=*
    

Note the `pre-merge` status and the generated JWT secret location in the logs.

Consensus Client (Beacon Node)
==============================

Again there are multiple options for running a Beacon Node, here I will use Lighthouse.

As of writing, the current merge-ready Lighthouse version is [v3.1.0](https://github.com/sigp/lighthouse/releases/tag/v3.1.0).

Add the following merge-related arguments:

    --execution-endpoints http://localhost:8551
    --execution-jwt="/home/you/.ethereum/geth/jwtsecret"
    

Note the port `8551` is different from the legacy RPC port (`8545`) because it is an exclusive interface for the Beacon Node only. Also note the `--execution-jwt` location should match the location shown in `geth` logs above.

Restart the Beacon Node. It will take a few minutes to migrate the database from the previous version. Once it is connected and synced with the Execution Client we’ll see:

    INFO Ready for the merge current_difficulty: 57833190587477479896205, terminal_total_difficulty: 58750000000000000000000, service: slot_notifier
    

That means both clients are ready! The Engine API has started, the TTD (Terminal Total Difficulty) is nominal, we are ready for Merge™

One More Thing
==============

Go to [bordel.wtf](https://bordel.wtf/) and check out the estimated Merge time if you want to see it happen live!

---

*Originally published on [detoo](https://paragraph.com/@detoo-2/start-your-engine-api-for-merge)*
