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.
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 installbasectl 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
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
yoryes. Anything else (including pressing Enter) cancels the command. - Add
--yesto skip the prompt when scripting. - Adding
--jsonto 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.