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:
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 |