Development Environment
The recommended setup is the sibling-workspace model used by the maintained repos, smoke tests, and localnet flows.
Recommended Workspace
~/xian/
xian-cli/
xian-stack/
xian-abci/
xian-configs/
xian-contracting/
xian-py/Useful optional siblings depending on your work:
xian-linterfor standalone lint-service workxian-jsfor browser and TypeScript integrationsxian-wallet-browserandxian-wallet-mobilefor wallet developmentxian-contractsfor maintained contract packagesxian-playground-web,xian-contracting-hub-web, andxian-mcp-serverfor higher-level tooling
Tooling Baseline
| Tool | Recommended version / note |
|---|---|
| Python | 3.14+ for the core repos |
uv | preferred Python environment and command runner |
| Docker | required for xian-stack, localnet, and most node workflows |
| Git | needed for the sibling workspace |
The Python repos in the maintained workspace use Python 3.14.
Bootstrap
Start with the operator-facing repo, then validate the runtime stack:
cd ~/xian/xian-cli
uv sync --group dev
cd ../xian-stack
make validateIf you are working directly on the contract runtime or ABCI layer, also install their dev environments:
cd ~/xian/xian-contracting
uv sync --group dev
cd ../xian-abci
uv sync --group devCommon Validation Loops
Use focused checks while you iterate.
cd ~/xian/xian-contracting
uv run pytest tests/unit/test_linter.py tests/unit/test_lmdb_store.py tests/unit/test_tracer.py
cd ../xian-abci
uv run pytest tests/abci_methods/test_query.py tests/abci_methods/test_finalize_block.py
cd ../xian-stack
make smoke-cliLocal Multi-Node Testing
Use xian-stack when you need a realistic local validator environment:
cd ~/xian/xian-stack
python3 ./scripts/backend.py localnet-init --nodes 4 --topology integrated --clean
python3 ./scripts/backend.py localnet-up --wait-for-health
python3 ./scripts/backend.py localnet-statusFor deeper whole-stack validation, use the maintained harnesses in xian-stack, including the broader localnet e2e flows and the VM-oriented localnet runs.
Contract-Only Setup
If you only want to write and test contracts and do not need the full workspace, a smaller setup is enough:
uv add xian-tech-contractingThen start with Your First Smart Contract.