CLI Reference

The xe binary — unified CLI for node operation and client interaction.


The xe binary is a unified CLI for both node operation and client interaction.

xe-testnet

Commands

xe node [flags]           Start a node daemon
xe wallet create          Create a new wallet
xe wallet balance         Show wallet balance
xe faucet                 Request testnet XE from the faucet service
xe send <addr> <amount> [--asset XE|XUSD] [--memo "text"]
                          Send funds; --memo attaches up to 64 bytes of UTF-8
xe receive                Receive pending sends
xe mint <amount>          Ops/bootstrap only — wallet must be an authorized sys.minter
xe burn <amount> [--yes]  Burn funds from the loaded wallet
xe providers              List 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 leased VM
xe reputation <address>   Show provider reputation
xe keygen                 Generate ed25519 SSH keypair
xe sign-block             Sign a block from stdin (seed from XE_SEED)
xe version                Print version
xe help                   Print usage

xe faucet talks to the standalone faucet service (XE_FAUCET, default https://faucet.test.network). It sends 1,000 testnet XE per account per day from a pre-funded wallet; the grant lands as a pending send, so claim it with xe receive.

xe sign-block takes no seed argument — the binary rejects one because a positional seed leaks via ps, /proc, and shell history. Set XE_SEED instead.

Environment Variables

VariableDefaultDescription
XE_NODEhttps://ldn.core.test.networkNode API URL
XE_WALLET~/.xe/wallet.seedWallet seed file
XE_SEED(none)Hex seed for sign-block (required — the command takes no seed argument)
XE_FAUCEThttps://faucet.test.networkFaucet service URL
XE_API_ADMIN_TOKEN(none)Node: enables operator-only API endpoints when set
XE_SSH_HOSTldn.test.networkSSH gateway hostname
XE_SSH_PORT2222SSH gateway port

Node Flags

FlagDefaultDescription
-port9000libp2p TCP port
-api-port8080HTTP API port
-api-bind127.0.0.1API bind address
-apitrueEnable/disable HTTP API server
-dial(none)Bootstrap multiaddrs
-data./dataStorage directory
-cors-origin(none)Allowed CORS origin
-uifalseEnable embedded web UI (requires -api)
-ui-port8000Web UI port
-ui-bind127.0.0.1Web UI bind address
-ui-dir(embedded)Dev override: serve UI from filesystem
-wallettrueExpose /wallet/ in the embedded UI; --wallet=false serves 404
-providefalseEnable provider mode
-vcpus2vCPUs to offer
-memory2048Memory in MB
-disk20Disk in GB
-price-multiplier1000Provider price multiplier ×1000 (1000 = baseline)
-ssh-port0SSH gateway port (0 = disabled)
-limactl-path(PATH)Path to limactl
-max-conns-per-ip8Max inbound connections per source IP
-min-lease-duration(none)Policy: minimum lease duration as a Go duration (e.g. 1h); empty = no limit
-max-lease-duration(none)Policy: maximum lease duration (e.g. 720h); empty = no limit
-min-lease-cost0Policy: minimum XUSD cost (0 = no min)
-max-lease-cost0Policy: maximum XUSD cost (0 = no max)
-max-concurrent-leases0Policy: max active leases (0 = capacity-bound only)

The lease-duration flags are duration strings, not numbers — passing 0 fails validation and stops the node at startup. Leave them unset for no limit.