Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
---
title: Creating your own L2 rollup testnet

Check warning on line 2 in chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx

View check run for this annotation

Mintlify / Mintlify Validation (optimism-373f39ad) - vale-spellcheck

chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx#L2

Did you really mean 'rollup'?

Check warning on line 2 in chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx

View check run for this annotation

Mintlify / Mintlify Validation (optimism-373f39ad) - vale-spellcheck

chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx#L2

Did you really mean 'testnet'?
description: Learn how to deploy and orchestrate all OP Stack components for a complete testnet deployment.

Check warning on line 3 in chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx

View check run for this annotation

Mintlify / Mintlify Validation (optimism-373f39ad) - vale-spellcheck

chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx#L3

Did you really mean 'testnet'?
---

Welcome to the complete guide for deploying your own OP Stack L2 rollup testnet. This multi-part tutorial will walk you through each component step-by-step, from initial setup to a fully functioning rollup.

Check warning on line 6 in chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx

View check run for this annotation

Mintlify / Mintlify Validation (optimism-373f39ad) - vale-spellcheck

chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx#L6

Did you really mean 'rollup'?

Check warning on line 6 in chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx

View check run for this annotation

Mintlify / Mintlify Validation (optimism-373f39ad) - vale-spellcheck

chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx#L6

Did you really mean 'testnet'?

Check warning on line 6 in chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx

View check run for this annotation

Mintlify / Mintlify Validation (optimism-373f39ad) - vale-spellcheck

chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx#L6

Did you really mean 'rollup'?

<Info>
This tutorial requires **intermediate-level experience working with EVM chains**.
Expand All @@ -13,12 +13,12 @@

## What you'll build

By the end of this tutorial, you'll have a complete OP Stack testnet with:

Check warning on line 16 in chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx

View check run for this annotation

Mintlify / Mintlify Validation (optimism-373f39ad) - vale-spellcheck

chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx#L16

Did you really mean 'testnet'?

* **L1 Smart Contracts** deployed on Sepolia testnet

Check warning on line 18 in chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx

View check run for this annotation

Mintlify / Mintlify Validation (optimism-373f39ad) - vale-spellcheck

chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx#L18

Did you really mean 'Sepolia'?

Check warning on line 18 in chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx

View check run for this annotation

Mintlify / Mintlify Validation (optimism-373f39ad) - vale-spellcheck

chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx#L18

Did you really mean 'testnet'?
* **Execution Client** (op-geth) processing transactions
* **Consensus Client** (op-node) managing rollup consensus

Check warning on line 20 in chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx

View check run for this annotation

Mintlify / Mintlify Validation (optimism-373f39ad) - vale-spellcheck

chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx#L20

Did you really mean 'rollup'?
* **Batcher** (op-batcher) publishing transaction data to L1

Check warning on line 21 in chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx

View check run for this annotation

Mintlify / Mintlify Validation (optimism-373f39ad) - vale-spellcheck

chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx#L21

Did you really mean 'Batcher'?
* **Proposer** (op-proposer) submitting state root proposals
* **Challenger** (op-challenger) monitoring for disputes

Expand Down Expand Up @@ -55,7 +55,7 @@
make test-l2 # Verify L2 functionality
```

4. **Monitor your rollup:**

Check warning on line 58 in chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx

View check run for this annotation

Mintlify / Mintlify Validation (optimism-373f39ad) - vale-spellcheck

chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx#L58

Did you really mean 'rollup'?
```bash
make logs # View all service logs
make status # Check service health
Expand Down Expand Up @@ -132,21 +132,21 @@
</Info>
</Expandable>

### Get access to a sepolia node

Check warning on line 135 in chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx

View check run for this annotation

Mintlify / Mintlify Validation (optimism-373f39ad) - vale-spellcheck

chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx#L135

Did you really mean 'sepolia'?

Since you're deploying your OP Stack chain to Sepolia, you'll need to have access to a Sepolia node.

Check warning on line 137 in chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx

View check run for this annotation

Mintlify / Mintlify Validation (optimism-373f39ad) - vale-spellcheck

chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx#L137

Did you really mean 'Sepolia'?

Check warning on line 137 in chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx

View check run for this annotation

Mintlify / Mintlify Validation (optimism-373f39ad) - vale-spellcheck

chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx#L137

Did you really mean 'Sepolia'?
You can either use a node provider like [Alchemy](https://www.alchemy.com/) (easier) or run your own Sepolia node (harder).

Check warning on line 138 in chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx

View check run for this annotation

Mintlify / Mintlify Validation (optimism-373f39ad) - vale-spellcheck

chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx#L138

Did you really mean 'Sepolia'?

### Required resources

* **Sepolia ETH** - You'll need about 2-3 ETH:

Check warning on line 142 in chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx

View check run for this annotation

Mintlify / Mintlify Validation (optimism-373f39ad) - vale-spellcheck

chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx#L142

Did you really mean 'Sepolia'?
* Start with [Superchain Faucet](https://console.optimism.io/faucet) (gives 0.05 ETH)
* Get more from:
* [Alchemy Faucet](https://sepoliafaucet.com/)
* [Infura Faucet](https://www.infura.io/faucet/sepolia)
* [Paradigm Faucet](https://faucet.paradigm.xyz/)
* Or ask in [Optimism Discord](https://discord.gg/optimism)
* **L1 RPC URL** - An RPC endpoint to connect to the Sepolia network. You can get this from node providers like [Alchemy](https://www.alchemy.com/), [Infura](https://www.infura.io/). This is required so `op-deployer` and other services can read from and send transactions to L1.

Check warning on line 149 in chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx

View check run for this annotation

Mintlify / Mintlify Validation (optimism-373f39ad) - vale-spellcheck

chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx#L149

Did you really mean 'Sepolia'?

<Info>
**Testnet Only**: This guide is for **testnet deployment only**.
Expand All @@ -158,7 +158,7 @@

## Directory structure

To keep your rollup deployment organized, we'll create a dedicated directory structure. All components will be set up within this structure:

Check warning on line 161 in chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx

View check run for this annotation

Mintlify / Mintlify Validation (optimism-373f39ad) - vale-spellcheck

chain-operators/tutorials/create-l2-rollup/create-l2-rollup.mdx#L161

Did you really mean 'rollup'?

```bash
rollup/
Expand All @@ -184,35 +184,35 @@

Install op-deployer, deploy L1 contracts, and prepare your environment

[Go to op-deployer setup →](/operators/chain-operators/tutorials/create-l2-rollup/op-deployer-setup)
[Go to op-deployer setup →](/chain-operators/tutorials/create-l2-rollup/op-deployer-setup)
</Step>

<Step title="Spin up sequencer">

Set up and run op-geth and op-node (the execution and consensus layers)

[Go to sequencer setup →](/operators/chain-operators/tutorials/create-l2-rollup/op-geth-setup)
[Go to sequencer setup →](/chain-operators/tutorials/create-l2-rollup/op-geth-setup)
</Step>

<Step title="Spin up batcher">

Configure and start op-batcher for L1 data publishing

[Go to batcher setup →](/operators/chain-operators/tutorials/create-l2-rollup/op-batcher-setup)
[Go to batcher setup →](/chain-operators/tutorials/create-l2-rollup/op-batcher-setup)
</Step>

<Step title="Spin up proposer">

Set up op-proposer for state root submissions

[Go to proposer setup →](/operators/chain-operators/tutorials/create-l2-rollup/op-proposer-setup)
[Go to proposer setup →](/chain-operators/tutorials/create-l2-rollup/op-proposer-setup)
</Step>

<Step title="Spin up challenger">

Configure op-challenger for dispute resolution monitoring

[Go to challenger setup →](/operators/chain-operators/tutorials/create-l2-rollup/op-challenger-setup)
[Go to challenger setup →](/chain-operators/tutorials/create-l2-rollup/op-challenger-setup)
</Step>
</Steps>

Expand Down