Skip to main content
basectl is a command-line tool for running, monitoring, and debugging Base infrastructure. It gives you an interactive terminal dashboard and a set of scriptable commands to:
  • Inspect blocks, node sync, peers, the transaction pool, Flashblocks, and proofs.
  • Check node health with a single diagnostic command.
  • Operate high-availability (HA) sequencer clusters.
It works against mainnet, Sepolia (testnet), and local development networks.
basectl is built for node operators. If you only need an RPC endpoint to build an app, use a public endpoint or a node provider instead of running your own node.

Installation

Most operators install basectl with baseup, the installer for Base’s release binaries. It’s also included in the base/node Docker image, and you can build it from source.
1

Install with baseup (recommended)

baseup downloads and verifies the official release binaries. Install baseup, then install basectl:
Install basectl with baseup
2

Or build from source

basectl lives in the base/base repository. Build it with Cargo, using the same maxperf profile as the release binaries:
Build basectl
The compiled binary is written to target/maxperf/basectl.
3

Verify the install

Confirm the binary runs and prints its help:
Verify basectl

Usage

basectl syntax

Global options

Choosing a network

Pass -c/--config to pick which network a command runs against: By default, the mainnet and sepolia configs talk to a local node at http://127.0.0.1:8545 (execution layer) and http://127.0.0.1:9545 (consensus layer). They also keep the hosted public endpoints on hand for read-only comparisons, such as checking how far your node is behind the network. If your local node isn’t running, these commands report an error rather than quietly using the public endpoint. To point a command somewhere else, use the RPC flags on that command (--el-rpc, --cl-rpc, --conductor-rpc, --prover-rpc) or supply your own config file.

Output formats

Most read-only commands print an easy-to-read table by default and support two extra formats:

Commands that change node state

Some commands change live infrastructure: banning or removing peers, clearing the transaction pool, pausing a conductor, starting or stopping a sequencer, and submitting proofs. These share the same safeguards:
  • They print exactly what they’re about to do and wait for you to type y or yes. Anything else (including pressing Enter) cancels the command.
  • Add --yes to skip the prompt when scripting.
  • Adding --json to one of these commands requires --yes, so an automated run never gets stuck waiting for input.
  • A command that acts on every node in a cluster can succeed on some nodes and fail on others. The output lists which nodes succeeded and which failed, and the command exits with an error if any node failed.
These commands act on live infrastructure. Target a specific node with the relevant RPC flag, and only pass --yes from automation you trust.

Commands