A high-performance command-line interface for contributing proofs to the Nexus network.
We're building a global distributed prover network to unite the world's computers and power a new and better Internet: the Verifiable Internet. Connect to the beta and give it a try today.
Nexus is a global distributed prover network that unites the world's computers to power a new and better Internet: the Verifiable Internet.
There have been several testnets so far:
- Testnet 0: October 8 – 28, 2024
- Testnet I: December 9 – 13, 2024
- Testnet II: February 18 – 22, 2025
- Devnet: February 22 - June 20, 2025
- Testnet III: Ongoing
For the simplest and most reliable installation:
curl https://cli.nexus.xyz/ | shThis downloads the latest binary, prompts for Terms of Use acceptance, and starts interactive mode.
For automated installations (e.g., in CI):
curl -sSf https://cli.nexus.xyz/ -o install.sh
chmod +x install.sh
NONINTERACTIVE=1 ./install.shProving with the CLI is documented here.
To start with an existing node ID, run:
nexus-cli start --node-id <your-node-id>Alternatively, you can register your wallet address and create a node ID with the CLI, or at app.nexus.xyz.
nexus-cli register-user --wallet-address <your-wallet-address>
nexus-cli register-node
nexus-cli startTo run the CLI noninteractively, you can also opt to start it in headless mode.
nexus-cli start --headlessThe register-user and register-node commands will save your credentials to ~/.nexus/config.json. To clear credentials, run:
nexus-cli logoutFor troubleshooting or to see available command-line options, run:
nexus-cli --helpThe Nexus CLI features an adaptive difficulty system that automatically adjusts task difficulty based on your node's performance. This ensures optimal resource utilization while preventing system overload.
- Starts at:
small_mediumdifficulty - Promotes to:
medium→large(if tasks complete in < 7 minutes) - Safety limit: Stops at
large(no auto-promotion toextra_large)
small_medium → medium → large
↑ ↑ ↑
Default < 7 min < 7 min
success success
Lower Difficulty (Small or SmallMedium):
- Resource-constrained systems
- Background processing alongside other apps
- Testing/development environments
- Battery-powered devices
Higher Difficulty (Large or ExtraLarge):
- High-performance hardware (8+ cores, 16+ GB RAM)
- Dedicated proving machines
- Experienced users who understand requirements
- Maximum reward optimization
# Lower difficulty for resource-constrained systems
nexus-cli start --max-difficulty small
nexus-cli start --max-difficulty small_medium
# Higher difficulty for powerful hardware
nexus-cli start --max-difficulty large
nexus-cli start --max-difficulty extra_large
# Case-insensitive (all equivalent)
nexus-cli start --max-difficulty MEDIUM
nexus-cli start --max-difficulty medium
nexus-cli start --max-difficulty MediumAvailable Difficulty Levels:
small- Basic tasks, minimal resource usagesmall_medium- Default starting difficulty, balanced performancemedium- Moderate complexity, good for most systemslarge- High complexity, requires powerful hardwareextra_large- Maximum complexity, only for dedicated high-end systems
| Difficulty | CPU Cores | RAM | Use Case |
|---|---|---|---|
small |
2-4 cores | 4-8 GB | Resource-constrained, background |
small_medium |
4-6 cores | 8-12 GB | Default, balanced performance |
medium |
6-8 cores | 12-16 GB | Standard desktop/laptop |
large |
8+ cores | 16+ GB | High-performance systems |
extra_large |
12+ cores | 24+ GB | Dedicated proving machines |
Monitor performance in the dashboard:
- Task Completion Time: Shown in metrics panel
- Promotion Status: Whether system is promoting or maintaining level
Tasks taking too long:
nexus-cli start --max-difficulty small_mediumWant more challenging tasks:
nexus-cli start --max-difficulty largeUnsure about system capabilities:
- Use the default adaptive system (no
--max-difficultyneeded) - The system will automatically find the optimal difficulty for your hardware
- Only override if you're specifically unhappy with the automatic performance
For containerized deployments:
- Install Docker and Docker Compose
- Update the node ID in
docker-compose.yaml - Build and run:
docker compose build --no-cache
docker compose up -d
docker compose logs # Check logs
docker compose down # ShutdownUse of the CLI is subject to the Terms of Use. First-time users running interactively will be prompted to accept these terms.
During the CLI's startup, you'll be asked for your node ID. To skip prompts in a
non-interactive environment, manually create a ~/.nexus/config.json in the
following format:
{
"node_id": "<YOUR NODE ID>"
}- Network FAQ
- Discord Community
- Technical issues? Open an issue
- To submit programs to the network for proving, contact [email protected].
Interested in contributing to the Nexus Network CLI? Check out our Contributor Guide for:
- Development setup instructions
- How to report issues and submit pull requests
- Our code of conduct and community guidelines
- Tips for working with the codebase
For most users, we recommend using the precompiled binaries as described above. The contributor guide is intended for those who want to modify or improve the CLI itself.
The following steps may be required in order to set up a development environment for contributing to the project:
sudo apt update
sudo apt upgrade
sudo apt install build-essential pkg-config libssl-dev git-all
sudo apt install protobuf-compiler# Install using Homebrew
brew install protobuf
# Verify installation
protoc --versionInstall WSL, then see Linux instructions above.
# Install using Chocolatey
choco install protobufNexus CLI is distributed under the terms of both the MIT License and the Apache License (Version 2.0).