Before you start
- A connected, online executor. See Connect an executor.
- A role that can deploy: owner or admin. See Roles and permissions.
Steps
1
Target
Choose where the node runs and which network it joins.
- Executor — pick the executor to host the node. Offline executors are disabled. (Hidden when you start the wizard from a specific executor — it’s already chosen.)
- Runtime (Agent only) — whether the agent runs this node as Systemd services or in Docker containers. Most chains only ever run as system services, so the field is fixed on Systemd; it becomes a real choice on the chain and network combinations that support containers. See Runtime below.
- Chain — only the chains this executor supports appear. See Supported chains.
- Network — for example
mainnet,signet,sepolia,chapel. The list depends on the chain. - Node type — usually
Full; Ethereum also offersblob-serving(a full node whose beacon keeps every blob, for serving an L2 — see Ethereum), Bitcoin and BSC also offerPruned(less disk, no full history), Tron offersLite, and Stable offersPrunedandArchive(it has no Full). When a chain has only one type, this is fixed for you.
2
Resources
The Storage and Resources sections come pre-filled with recommended values for your chain, network, node type, and client — recommended is selected automatically, and
mainnet is consistently heavier than testnets.- Storage — on a Kubernetes executor, choose a Storage class for the disk. Each declared volume has a size; keep the recommended value or switch on customize to set your own. Every declared volume is shown and needs a size before you can continue — an Ethereum
blob-servingnode with Reth, for example, gets recommended defaults and its execution storage here too. - Resources — per role, set the CPU request and Memory request. Switch on customize to also set separate CPU and memory limits (otherwise limits match requests). These map to Kubernetes resource requests/limits on the Operator and to process limits on the Agent.
3
Network
Choose how each of the node’s components is reachable — Local (internal only), Direct (publish the port on the executor’s own network), or Public domain (a managed gateway with a domain, TLS, rate limit, and optional RPC-key auth). Local is the safest default; pick a public domain for production traffic. P2P and metrics aren’t proxied, and you can change exposure any time after deploy from the node’s RPC tab.On a bare-metal Agent with an unmanaged firewall, the step reminds you to expose only the endpoints you intend to publish.See RPC exposure for the full model, the Agent-vs-Operator differences, and how to read the resulting endpoint.
4
Connections
Shown only when the node needs it — an L2 that reads an Ethereum L1, or a Tron node’s optional event streaming. See Connections below for the full step.
- L1 endpoints (Base, Robinhood Chain) — point the node at an Ethereum execution RPC and a beacon endpoint: enter External URLs (Base and Robinhood Chain), or, for Robinhood Chain, pick an Existing node or create a New node. Every declared connection must be assigned.
- Event streaming (Tron) — optionally stream chain events to a MongoDB destination. Off by default.
5
Review
A summary panel shows the node you’re about to create. An Advanced section holds optional settings for recovery and naming — all pre-filled with safe defaults:
- Restart policy (Agent only) — restart behaviour for the underlying processes:
On failure(default),Always, orNever. - Node ID — leave empty to generate one from chain and network (plus a short random suffix), or type your own.
Connections
The Connections step configures the parent endpoints and destinations a node depends on. It appears only when the chosen chain needs it, and what it contains depends on the chain.L1 endpoints (Base, Robinhood Chain)
An L2 like Base or Robinhood Chain derives its chain from Ethereum L1 and can’t sync from L2 peers alone. There’s no public L1 fallback, so you provide the endpoints — an Ethereum execution RPC and an Ethereum beacon endpoint on the network the L2 reads. Choose where they come from:- Existing node — pick an Ethereum node from your organization; it supplies both endpoints. It must be a
blob-servingnode on the network the L2 reads, with its execution RPC and beacon API exposed Direct without RPC-key auth. A node that’s still syncing can be picked, and the deployment waits for it. Nodes that can’t serve the connection are disabled, with the reason. - New node — choose a host and create the Ethereum node as part of this deployment. Offered when one of your executors can deploy it.
- External URLs — enter the execution RPC and beacon URLs of a node you run elsewhere or a provider’s; each must work without a password or API key.
--supernode or --semi-supernode; a beacon node running without one of them can’t feed the L2. An Ethereum node you deploy on Novacula gets that flag when you pick the blob-serving node type in the wizard, so that’s the node to pick (or create) for an L2. For external URLs to such a node, expose its execution RPC and beacon API without RPC-key auth and enter those URLs.
Every declared connection must be assigned before you can continue; the requirements have no optional slots. You can change these later on the node’s Connections tab — see Edit a running node.
Event streaming (Tron)
A Tron node always shows this step so you can optionally stream chain events to a MongoDB destination. It’s off by default; see Tron event streaming for the streams, filters, and how a historical backfill resumes. Enabling it needs a reachable MongoDB (host, port, database, username, password) and java-tron 4.8.2 or newer.Runtime (Agent only)
On a bare-metal Agent, a node’s processes run either assystemd services or as Docker containers, and the Target step’s Runtime field is where that’s decided. Kubernetes executors have no such field — everything is a pod there.
Systemd is the default and the only option for most chains. Docker becomes selectable when both of these hold:
- The executor is an Agent running release 0.1.11 or newer.
- The chain and network you picked support the container runtime. Ethereum (
mainnet,sepolia) and Tempo (mainnet,moderato) can run either way; Igra (mainnet,galleon-testnet) and Ink (mainnet) are container-only, so they always use Docker.
The chosen runtime is shown as Runtime on the Review step, so you can confirm it before deploying, and afterwards as Runtime in the node’s Node metadata (Systemd or Docker; Kubernetes for a node on an Operator). It’s fixed for the life of the node: to move an existing node between runtimes, redeploy it.
The first Docker node on a host also triggers the Docker engine install — see Docker prerequisite.
After you deploy
The node detail page is where you watch and manage the node:- Status — reported by the executor and refreshed each sync.
- Logs — streamed live from each process. See Node logs.
- Monitoring — sync progress, peers, and per-process metrics. See Node monitoring.