Skip to main content
Now that you have op-deployer configured, it’s time to spin up the sequencer for your rollup. This involves running both op-reth and op-node to create a functioning sequencer.
Step 2 of 5: This tutorial builds on Spin up op-deployer. Make sure you’ve completed that first.
op-geth has reached end-of-support (2026-05-31) and does not support the now-active Karst hardfork, so op-geth nodes can no longer follow the canonical chain. Migrate to op-reth, the primary supported execution client. See the op-geth deprecation notice for the full migration plan.
This tutorial previously taught op-geth as the execution client; this page now uses op-reth throughout.

What you’ll set up

The sequencer node consists of two core components:
  • op-reth: Execution layer that processes transactions and maintains state
  • op-node: Consensus layer that orders transactions and creates L2 blocks
The sequencer is responsible for:
  • Ordering transactions from users
  • Building L2 blocks
  • Signing blocks on the P2P network

Software installation

For spinning up a sequencer, we recommend using Docker, as it provides a simpler setup and consistent environment. In this guide, building from source is also provided as an alternative for those who need more control and easier debugging.
The versions used in this guide (op-node/v1.19.3 and op-reth/v2.4.0) were the latest releases at the time of writing. Check the op-node releases and op-reth releases for the current versions, and always read the release notes for compatibility information.
1

Set up directory structure and copy configuration files

If you prefer containerized deployment, you can use the official Docker images, and do the following:
2

Create environment variables file

Important: Replace ALL placeholder values (YOUR_ACTUAL_*) with your real configuration values.
3

Make sure your docker application is running

Create a docker-compose.yml file in the same directory:
A few flags worth understanding:
  • --chain=/workspace/genesis.json points op-reth at the genesis file generated by op-deployer. Unlike op-geth, op-reth needs no separate init step — it initializes its database from the chain spec on first startup.
  • --l2.enginekind=reth tells op-node it is driving a reth-based execution client.
  • --rollup.disable-tx-pool-gossip is the op-reth equivalent of op-geth’s --rollup.disabletxpoolgossip=true.
  • --builder.deadline=2 and --builder.interval=100ms tune op-reth’s block builder for the 2-second L2 block time (the defaults target Ethereum’s 12-second slots).
  • op-reth runs as an archive node by default, so there is no --gcmode=archive equivalent to set.
4

Start the services

5

Final directory structure

Your sequencer node is now operational and ready to process transactions.

What’s Next?

Great! Your sequencer is running and processing transactions. The next step is to set up the batcher to publish transaction data to L1.

Spin up batcher →

Next: Configure and start op-batcher to publish L2 transaction data to L1 for data availability.

Need Help?