Update your operator (without losing your identity)
Update a running Halo operator safely: refresh the CLI, restart the service, verify with doctor — wallet, reputation, and earnings all carry over.
An operator is a long-running service, so updating it has two parts: update the CLI, then restart the service so it actually runs the new code. A daemon that auto-restarts on crash still runs the old build — only a restart picks up the update.
Your wallet is your identity — earnings, League points, and dashboard pairing all live on it. The whole procedure below leaves
~/.halo/untouched.
1. Update the CLI
npm rm -g halo-cli
bash <(curl -fsSL https://raw.githubusercontent.com/warden-protocol/run-halo/main/skill/scripts/install.sh)
The first command matters: the installer exits early if halo is already on
your PATH. Details in update the halo CLI.
2. Restart the service
There’s no restart subcommand — uninstall and reinstall the unit:
halo service uninstall serve
halo service install serve
If you pass daemon arguments, pass them again after --, exactly as you did the
first time. If your wallet keystore is passphrase-protected, export
HALO_PASSPHRASE before install — it’s baked into the service unit’s
environment so the daemon can unlock the wallet unattended.
Downtime is a few seconds. Still, updates count as offline time like any other restart, so prefer low-traffic hours — the same advice as in keep your operator online.
3. Verify
halo doctor --json # install + wallet state, provider, relay health
halo service status serve # is the daemon back up?
halo service logs serve # watch the first requests arrive
Check that doctor reports the same wallet address as before — it will, unless
someone passed --rotate-wallet, which is never part of an update.
Related
- Update the halo CLI — the two-command core of this.
- Keep your operator online — uptime, logs, recovery.
- Run an operator (CLI) — first-time setup.