> ## Documentation Index
> Fetch the complete documentation index at: https://docs.novacula.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Ink

> Two-role (op-reth + op-node) OP-Stack L2 anchored on Ethereum

Ink is an OP-Stack L2 anchored on Ethereum. Every Ink node runs two processes: an **op-reth** execution layer and an **op-node** rollup client. They talk to each other over a JWT-secured Engine API that the platform manages — you never set it. Sequencer URL and op-node P2P bootnodes are baked in per network, so the node finds the chain without extra configuration. The one thing you must supply is an **L1 Ethereum RPC** for op-node to derive the rollup from (see [L1 endpoint](#l1-endpoint-required)).

Ink runs on Kubernetes only. Deploy it through an executor backed by the [Kubernetes operator](/recipes/provision-on-kubernetes); it is not available for bare-metal executors.

## Networks and resources

| Network   | Sequencer RPC                    |
| --------- | -------------------------------- |
| `mainnet` | `https://rpc-gel.inkonchain.com` |

Ink offers a single node type, `full`. The deploy wizard pre-fills resource and disk defaults:

| Network   | Process | CPU | Memory | Disk   |
| --------- | ------- | --- | ------ | ------ |
| `mainnet` | op-reth | 4   | 16Gi   | 2000Gi |
| `mainnet` | op-node | 2   | 8Gi    | 10Gi   |

## Clients

| Role     | Client      | Versions  |
| -------- | ----------- | --------- |
| `el`     | **op-reth** | `2.3.1`   |
| `rollup` | **op-node** | `v1.19.0` |

One pinned client per role today. The deploy wizard offers exactly the client and version the executor declares.

## Ports

| Name               | Port   | Owner   |
| ------------------ | ------ | ------- |
| EL RPC (HTTP)      | `8545` | op-reth |
| EL RPC (WebSocket) | `8546` | op-reth |
| Rollup RPC         | `9545` | op-node |

## L1 endpoint (required)

op-node derives the L2 chain from Ethereum L1 — it does **not** sync purely from L2 peers. You provide the L1 connection through op-node config overrides:

| Flag            | What it is                                                         |
| --------------- | ------------------------------------------------------------------ |
| `--l1`          | L1 execution RPC endpoint (required)                               |
| `--l1.beacon`   | L1 beacon (consensus) API endpoint (required)                      |
| `--l1.rpckind`  | L1 RPC provider type: `basic`, `alchemy`, `quicknode`, or `erigon` |
| `--l1.trustrpc` | Trust the L1 RPC (on by default)                                   |

Point these at any reachable Ethereum mainnet RPC and beacon endpoint — a managed provider, or your own. If you already run an Ethereum node on Novacula, point op-node at its `:8545` plus its beacon API to cut egress and avoid third-party rate limits.

## Config overrides

Set per-role overrides when you deploy or upgrade a node — see [Edit configuration](/docs/nodes/edit-configuration). Each role (`el` for op-reth, `rollup` for op-node) passes through any flag the platform doesn't already manage. The L1 flags above are the ones you'll normally set on op-node.

The P2P bootnodes and static peer are baked in per network and managed for you, so `--p2p.bootnodes` and `--p2p.static` are rejected if you try to set them.

## Sync

op-node fetches batches from the L1 you configured and op-reth applies them through the Engine API. There is no checkpoint-sync URL or snapshot-restore option — initial sync is from genesis via the L1-derived chain, so a fresh node takes time and the disk default reflects full history. A healthy, reachable L1 endpoint is the gating factor for sync; if op-node can't reach L1, it can't make progress.

## Monitoring

Status, height, peers, sync progress, and disk combine both processes' readings — see [Node monitoring](/docs/nodes/monitoring).

## Common patterns

* **RPC provider for Ink mainnet** — accept the defaults, supply an L1 endpoint, and serve the node's HTTP and WebSocket RPC to your apps.
* **Reuse your own L1** — run an Ethereum node on Novacula and feed its RPC and beacon endpoints into op-node's L1 flags.
