Skip to main content

Overview

As a Node Operator, you’ll set up your own Arx node to participate in the Arcium Network. This guide walks you through each step of the process. First, you’ll prepare your environment by installing the necessary tools and generating security keys. Then, you’ll get your node registered onchain and configure it to run. Finally, you’ll connect to other nodes in a cluster and start doing computations. By the end, you will:
  • Install the Arcium tooling
  • Generate required keypairs
  • Fund accounts with SOL
  • Initialize onchain node accounts
  • Configure your node
  • Join or create a cluster
  • Deploy your node with Docker

Prerequisites

Before starting, ensure you have the following installed: You’ll also need:
  • A reliable internet connection
  • Basic familiarity with command-line tools
Recommended system requirements: Network requirements - open these ports:
Windows users: Arcium doesn’t run natively on Windows yet. Use Windows Subsystem for Linux (WSL2) with Ubuntu to follow this guide.

Step 1: Set up your workspace

Create a dedicated folder for your node setup to keep everything organized:
Stay in this directory for all remaining steps. All file paths and Docker commands assume you’re working from arcium-node-setup/.
You’ll also need to know your public IP address for the next steps. Here’s a quick way to find it:

Step 2: Install Arcium tooling

The Arcium tooling suite includes the CLI and Arx node software. Install it using the automated installer:
This script will:
  • Check for all required dependencies
  • Install arcup (Arcium’s version manager)
  • Install the latest Arcium CLI
  • Install the Arx node software
Verify the installation:
If you prefer manual installation, see the installation guide for detailed instructions.

Step 3: Generate required keypairs

Your Arx node needs five different keypairs for secure operation. Create these in your arcium-node-setup directory:

3.1 Node authority keypair

This Solana keypair identifies your node and handles onchain operations:
The --no-bip39-passphrase flag creates a keypair without a passphrase for easier automation.

3.2 Callback authority keypair

This Solana keypair signs callback computations and must be different from your node keypair for security separation:

3.3 Identity keypair

This keypair handles node-to-node communication and must be in PKCS#8 format:

3.4 BLS keypair

This keypair is used for BLS (Boneh-Lynn-Shacham) threshold signatures on MPC computation callbacks. Generate it using the Arcium CLI:
This creates a 32-byte private key stored as a JSON array format.

3.5 X25519 keypair

This keypair is used for encrypted communication between nodes:
This creates a 32-byte X25519 private key stored in JSON array format.
Keep these keypairs safe and private. Back them up to a secure location outside your VPS - you’ll need them to restore your node if something goes wrong. Never share them with anyone.

Step 4: Fund your accounts

Your node and callback accounts need SOL for transaction fees. Transfer SOL to both accounts and verify balances:
On devnet, you can use solana airdrop 2 <address> -u devnet or the web faucet to get free SOL for testing.
On mainnet, SOL has real economic value. Ensure you have sufficient funds before proceeding.

Step 5: Initialize node accounts

Now we’ll register your node with the Arcium Network by creating its onchain accounts. This step tells the blockchain about your node and its capabilities.
Always pass --rpc-url <your-rpc-url> to arcium commands. solana config set --url ... affects Solana CLI commands only; arcium defaults to mainnet when --rpc-url is omitted.
For guidance on choosing a reliable endpoint, see the RPC Provider Recommendations. Use the init-arx-accs command to initialize all required onchain accounts for your node:

Required parameters:

  • --keypair-path: Path to your node authority keypair
  • --callback-keypair-path: Path to your callback authority keypair
  • --peer-keypair-path: Path to your identity keypair (PEM format)
  • --bls-keypair-path: Path to your BLS keypair (JSON array format)
  • --x25519-keypair-path: Path to your X25519 keypair (JSON array format)
  • --node-offset: Your node’s unique ID number on the network. Choose any unique number. If you get an error during setup saying your number is already taken, just pick a different one and try again.
  • --ip-address: Your node’s public IP address
  • --rpc-url: Solana RPC endpoint (mainnet or devnet)
If successful, you’ll see confirmation that your node accounts have been initialized onchain.

Step 6: Configure your node

The configuration file specifies which network to connect to, how to communicate with other nodes, and various operational settings. Create a node-config.toml file in your arcium-node-setup directory:
On v0.11.x, computations_limit, secondary_endpoint_rpc, and secondary_endpoint_wss are required: the config fails to parse without them. The node fails over to the secondary endpoints when the primary RPC lags or stops responding, so point them at a different provider than your primary endpoints.
Upgrading from v0.7.0? The [network] section, cluster, commitment, hardware_claim, starting_epoch, and ending_epoch fields have been removed. Update your node-config.toml to the simplified format above.

Trusted dealer config

If you operate a trusted dealer, the config expects every field under [dealer] and requires master_seed_path:
Replace 456 and 4 with your cluster offset and peer count.
local_addr was renamed to local_ip. Treat master_seed_path as the highest-sensitivity host secret; leaking it compromises keyshares.

Step 7: Cluster operations

Clusters are groups of nodes that collaborate on MPC computations. For background on cluster concepts, see Clusters overview. Most operators should join an existing cluster. Only create your own cluster if you’re coordinating a group of nodes.
To join an existing cluster, you must first be proposed by the cluster authority. Once proposed, accept the invitation:
Parameters:
  • true: Accept the join request (use false to reject)
  • --node-offset: Your node’s unique identifier (chosen during node initialization)
  • --cluster-offset: The cluster’s unique identifier (different from node offset - clusters and nodes have separate ID spaces)
You cannot join a cluster unless the cluster owner has first proposed you using propose-join-cluster.

Submit aggregated BLS key (required after cluster is full)

The command will verify that all cluster slots are filled before submitting. If nodes are still pending, it will fail with an error.
Once all nodes have joined the cluster, all nodes must aggregate and submit the combined BLS public key. This enables threshold BLS signatures for computation callbacks:
Parameters:
  • --keypair-path: Your node authority keypair (must be a node in the cluster)
  • --cluster-offset: The cluster’s offset
  • --node-offset: Your node’s offset within the cluster
All nodes need to run this command. The CLI will automatically fetch all node BLS public keys from the cluster and aggregate them.

Activate the cluster (cluster authority only)

After all nodes have submitted the aggregated BLS key, the cluster authority must activate the cluster:
Parameters:
  • --keypair-path: A keypair that has authority over the cluster
  • --cluster-offset: The cluster’s offset
Only the cluster authority can run this command. The cluster must have all BLS keys submitted before activation will succeed.

Step 8: Deploy your node

Before running Docker, prepare your environment and verify you have all required files:
Create a docker-compose.yml file in your arcium-node-setup directory:
Key configuration:
  • image: arcium/arx-node:v0.12.0: pinned version for stability
  • restart: unless-stopped: auto-restarts on crashes or server reboot
  • Volume mounts with :ro: read-only access for keypair files
  • ASYNC_MPC_STREAM_WINDOW_MB, ASYNC_MPC_CONN_WINDOW_MB, ASYNC_MPC_CC: recommended QUIC transport tuning for MPC throughput (per-stream and per-connection flow-control windows in MB, and the bbr congestion controller)
Start the node:
Ensure ports 8001, 8002, 8012, and 8013 are open for TCP and UDP. Port 9091 is TCP-only for metrics. The metrics endpoint has no authentication - restrict access to trusted networks only.
If you prefer using docker run directly:

Step 9: Verify node operation

Check that your node is running correctly:

Check node status

Check if node is active

Metrics and health

The node exposes Prometheus-compatible metrics on port 9091: Verify:
Scrape with Prometheus and visualize with Grafana:

Monitor logs

Extract internal logs

If you need detailed logs for debugging:

RPC provider recommendations

For better reliability, consider using dedicated RPC providers instead of the default public endpoints. Recommended providers:

Troubleshooting

All 5 environment variables are required. Verify your docker-compose.yml includes:
  • NODE_KEYPAIR_FILE
  • CALLBACK_AUTHORITY_KEYPAIR_FILE
  • NODE_IDENTITY_FILE
  • BLS_PRIVATE_KEY_FILE
  • X25519_PRIVATE_KEY_FILE
Regenerate the X25519 keypair:
  • Verify all 5 keypair files exist and are readable
  • Check that node-config.toml is valid TOML with all required fields
  • Ensure your IP address is accessible from the internet
  1. Verify firewall allows inbound TCP and UDP on ports 8001, 8002, 8012, 8013, plus TCP on 9091 if exposing metrics
  2. Check RPC endpoint is responsive
  3. Verify node is active: arcium arx-active <your-node-offset> --rpc-url <your-rpc-url>
  • Verify you have sufficient SOL for transaction fees
  • Check that your RPC endpoint is working
  • Ensure node offset is unique (try a different number)
  • Verify you’ve been invited by the cluster authority
  • Check that cluster has available slots
  • Ensure your node is properly initialized
All cluster nodes need valid BLS keys. After all nodes join:
Check the balance and top up your callback account:
  • Verify Docker is running
  • Check file permissions on mounted volumes
  • Ensure ports 8001, 8002, 8012, 8013 (TCP & UDP) and 9091 (TCP) are not already in use
Need more help? Join the Arcium Discord for community support, or review the installation troubleshooting guide.

What’s next?

Once your node is running successfully: