Skip to content

xe CLI Reference

xe is the unified command-line interface for the XE network. It replaces the separate xe-node, cli, xe-tool, and xe-lease-tool binaries. Source: cmd/xe/main.go.

Commands

xe node [flags]           Start a node daemon
xe wallet create          Create a new wallet
xe wallet balance         Show wallet balance
xe fund                   Claim XUSD via proof of work (testnet only)
xe send <addr> <amount>   Send funds
xe receive                Receive pending sends
xe providers              List compute providers
xe lease [flags]          Create a lease
xe lease status <hash>    Check lease status
xe vm <hash>              Get VM info
xe ssh <hash>             SSH into a leased VM
xe keygen                 Generate ed25519 SSH keypair
xe sign-block <seed>      Sign a block from stdin
xe version                Print version
xe help                   Show help

Global configuration

Configuration is via environment variables:

Variable Default Description
XE_NODE https://ldn.core.test.network Node API URL for client commands
XE_WALLET ~/.xe/wallet.seed Wallet seed file path
XE_SSH_HOST ldn.test.network SSH gateway hostname
XE_SSH_PORT 2222 SSH gateway port

Node

xe node [flags]

Starts a node daemon. Runs until SIGINT/SIGTERM. No interactive REPL — use xe subcommands against the API instead.

Flag Default Description
-port 9000 libp2p TCP listen port
-api-port 8080 HTTP API listen port
-api-bind 127.0.0.1 API bind address
-dial (none) Bootstrap multiaddr(s), comma-separated
-data ./data Storage directory
-cors-origin (none) Allowed CORS origin
-provide false Enable provider mode
-vcpus 2 vCPUs to offer (provider mode)
-memory 2048 Memory in MB (provider mode)
-disk 20 Disk in GB (provider mode)
-ssh-port 0 SSH gateway listen port (0 = disabled)
-limactl-path (PATH) Path to limactl binary
# Start a node and connect to testnet
xe node -port 9000 -api-port 8080 \
  -dial /ip4/45.77.226.208/tcp/9000/p2p/12D3KooW...

# Start a provider node
xe node -provide -vcpus 4 -memory 4096 -disk 40 \
  -ssh-port 2222 -dial ...

Provider requirements

Provider nodes require sys.timekeepers to be configured in the state chain. The node will refuse to start in provider mode without trusted timekeepers — attestations are mandatory for lease acceptance and settlement.

Wallet

xe wallet create

Generates a new ed25519 keypair and saves the seed to the wallet file (~/.xe/wallet.seed by default). Prints the account address.

xe wallet balance

Shows the current balance for all assets (XE, XUSD) for the wallet's account.

Transactions

xe fund

Claims 100 XUSD via proof-of-work. One claim per account per 24 hours. Uses all available CPU cores.

Testnet only

The claim mechanism is a testnet funding tool. It will be replaced by a proper token emission model in production.

xe send <address> <amount> [--asset XUSD]

Creates and submits a send block. Default asset is XUSD. The block is signed with the wallet's key, PoW is computed, and it's submitted to the node.

xe receive

Creates receive blocks for all pending incoming sends addressed to the wallet.

Compute

xe providers

Lists all compute providers registered on the network, showing total and available resources, XUSD balance, and active lease counts.

xe lease [flags]

Creates a lease on a compute provider. Generates an SSH key (if not already created), finds a suitable provider, submits the lease block, and waits for acceptance.

Flag Default Description
--vcpus 1 vCPUs
--memory 1024 Memory in MB
--disk 1 Disk in GB
--duration 300 Duration in seconds
--provider (auto) Provider address (auto-selects best fit if omitted)

The provider is selected automatically based on available resources and XUSD balance for staking. The lease block is submitted to a bootstrap node (not the provider directly) so gossip triggers the provider's auto-accept.

xe lease status <hash>

Shows the lease record: consumer, provider, resources, cost, stake, start time, settlement status.

xe vm <hash>

Shows VM status for a lease. Works via any node — bootstrap nodes proxy the request to the provider via libp2p.

xe ssh <hash>

Opens an SSH session to a leased VM. The connection goes through the SSH gateway (ProxyJump) with end-to-end encryption:

ssh client → gateway (lease key auth) → libp2p tunnel → provider → VM sshd

The SSH key is per-wallet: derived from the wallet file path (e.g., ~/.xe/wallet.lease_key). Each wallet gets its own key, preventing cross-wallet VM access.

Tools

xe keygen

Generates a new ed25519 keypair. Writes the private key in OpenSSH PEM format to ./lease_key and prints the public key hex.

xe sign-block <seed-hex>

Reads an unsigned block as JSON from stdin, signs it with the given seed, computes PoW, and writes the signed block to stdout. For scripting and low-level block construction.

Data directory

When running xe node, the -data flag controls persistent storage:

Path Content
host.key libp2p identity key (peer ID)
node.key Node account ed25519 key
ledger/ BadgerDB database
lima/ Lima VM state (provider only)
ssh_host_key SSH gateway host key

See also