Skip to content

Update JoinMarket NG

Review the release notes, check your backups, and stop wallet processes cleanly before updating. Let any active transaction or tumbler phase finish. Afterward, restart with the updated software and check wallet state; resume a saved tumble explicitly.

Saved Updater

After a successful verified installation, update with the installer saved in your data directory:

bash ~/.joinmarket-ng/install.sh --update

The saved updater authenticates the current release installer before updating the application. It preserves your existing config.toml, refreshes the nearby config.toml.template, and shows the template differences when available. Settings you omit use the new version's built-in defaults, which may change between releases. Do not replace your configuration with the full template. Review the relevant release notes before adopting new settings.

To install a particular release, add --version X.Y.Z. This selects the application release; the saved installer still refreshes to the latest authenticated installer.

Older Installations

Installations created before the saved updater can migrate with one final HTTPS bootstrap:

curl -sSL https://raw.githubusercontent.com/joinmarket-ng/joinmarket-ng/main/install.sh | bash -s -- --update

This bootstrap trusts GitHub and TLS for that run. It is not a retroactive authenticity guarantee for the old installation. After it succeeds, use the saved updater for subsequent updates.

Custom Directories

If the data directory or virtual environment is custom, preserve both settings when updating outside the generated activate.sh environment:

JOINMARKET_DATA_DIR=/srv/joinmarket \
  bash /srv/joinmarket/install.sh --update --venv /opt/jmng-venv

The generated activate.sh exports JOINMARKET_DATA_DIR and JMNG_VENV_DIR. Source it before normal commands so they use the same installation.

Do not use --dev, --version main, or --skip-verify for a funded wallet; those paths bypass signed release verification. See supply-chain security for the trust model and manual verification.