Installation and Setup
The maintained operator path uses xian-cli, xian-stack, and xian-configs in a sibling workspace.
Requirements
- macOS or Linux
- Python 3.14
uv- Docker with Compose
- Git
Typical layout:
~/xian/
xian-cli/
xian-stack/
xian-abci/
xian-configs/
xian-contracting/
xian-py/Prepare the Workspace
cd ~/xian/xian-cli
uv sync --group dev
cd ../xian-stack
make validateFor an isolated operator installation:
uv tool install xian-tech-cli
xian --helpNode lifecycle still requires access to compatible xian-stack and xian-configs assets.
Create a Local Node
Interactive setup:
xian setup nodeExplicit local setup:
xian network create local-dev \
--chain-id xian-local-1 \
--template single-node-dev \
--generate-validator-key \
--init-node
xian node start local-dev
xian node status local-dev
xian node endpoints local-dev
xian node health local-devsingle-node-dev enables the self-contained development surface by default: BDS/Postgres indexing, the read-only GraphQL endpoint and GraphiQL browser UI, the dashboard, Prometheus, and Grafana. Run xian node endpoints local-dev for the effective loopback URLs and xian node health local-dev to verify every enabled service. Five-second periodic blocks keep contract time moving while an interactive development node is idle.
IntentKit, DEX automation, the shielded relayer, product contract deployment, state sync, and speculative parallel execution remain explicit choices because they require extra repositories, credentials, product bootstrap, a peer network, or a dedicated test scenario.
Use --plan or --dry-run where supported to inspect paths and actions before writing files.
Join an Operator-Managed Network
Generate validator material, then join from an accepted manifest:
xian keys validator generate --out-dir ./keys/validator-1
xian network join validator-1 \
--network private-net \
--network-manifest /path/to/network/manifest.json \
--template single-node-indexed \
--validator-key-ref ./keys/validator-1/validator_key_info.json \
--stack-dir ../xian-stack
xian node init validator-1Verify the manifest, genesis hash, image digests, peers, snapshot trust, chain ID, and operator contact process before starting. The current codebase has no active public testnet or mainnet; the checked-in mainnet manifest is a rehearsal asset.
Image Mode
registryuses immutable image references supplied by a manifest/profile.local_buildbuilds from sibling source checkouts and is intended for local development or unreleased testing.
Release deployments should use digest-pinned images and retain the embedded release provenance.
Remote Hosts
Use xian-deploy for supported Ansible-based Linux deployment:
ansible-playbook playbooks/bootstrap.yml
ansible-playbook playbooks/push-home.yml
ansible-playbook playbooks/deploy.yml
ansible-playbook playbooks/health.ymlStore inventory secrets in Ansible Vault, SOPS, CI secrets, or another secret manager. Do not commit validator keys, database passwords, or rendered secret files.