Neutrino backend now has mempool support. Along with other improvements and bug fixes.
Added
- Takers now switch to a direct maker connection mid-session once (a03e2ac5)
- Show registered but unfunded fidelity bonds in list-bonds (d193bb15)
- CLI commands now print help when invoked without required arguments (e5a23af5)
- Add 'jm-wallet sync-bonds' to quickly refresh funded status of registered fidelity bonds (ecf396e9)
- Use the neutrino-api watched mempool tracker when available so neutrino takers verify maker broadcasts and follow the configured broadcast policy, with a neutrino_include_mempool opt-out for chain-only behaviour (6b913cae)
Fixed
- Exclude UTXOs locked by other in-flight CoinJoins from (ee23530f)
- Fix jm-wallet info mislabeling plain wallet sends as CoinJoin outputs/change (6904da14)
- Fix fidelity bond registry copying other wallets' bonds into a wallet's own per-wallet registry file (601ed69b)
- Make offline list-bonds and registry-show use the configured wallet when no flags are given (691e11ad)
- list-bonds is now offline-only; use recover-bonds to scan the blockchain (9ef23258)
- Fix history CSV corruption from a reordered column header that hid CoinJoin fingerprints and left confirmed rounds stuck pending (93e8953a)
- Notifications now include the full txid and an optional block explorer link (5032750f)
- Maker now sends notifications when a CoinJoin enters the mempool and when it confirms (e4442fc8)
- Secure the neutrino backend out-of-the-box with TLS trust-on-first-use pinning, default cert/token paths, automatic HTTPS, and a hard error on network mismatch (fd3e4d8c)
Configuration Changes
Existing config.toml files are not updated automatically. Review the bundled template changes below and apply the relevant options manually.
--- config.toml.template (0.31.1)
+++ config.toml.template (0.32.0)
@@ -60,6 +60,9 @@
# rpc_cookie_file = "~/.bitcoin/.cookie"
# Neutrino backend settings (used by all components when backend_type = "neutrino")
+# URL of the neutrino-api server. Defaults to http://127.0.0.1:8334.
+# When an auth token is configured (see below), the URL is automatically
+# upgraded to https:// because neutrino-api serves HTTPS in authenticated mode.
# neutrino_url = "http://127.0.0.1:8334"
# Preferred neutrino peers (host:port) that should be tried first while still
@@ -98,24 +101,33 @@
# Neutrino-api security settings (auto-TLS + API token authentication).
# When neutrino-api starts for the first time it generates a self-signed TLS
# certificate (tls.cert + tls.key) and a random API token (auth_token) in its
-# data directory. Set these to enable encrypted, authenticated communication.
-# In Flatpak deployments these are wired automatically from the neutrino data dir.
-#
-# Path to the neutrino-api TLS certificate (PEM). Enables HTTPS with
-# certificate pinning (trust-on-first-use).
-# Relative paths (e.g. "neutrino/tls.cert") are resolved against the data
-# directory ($JOINMARKET_DATA_DIR or --data-dir, default: ~/.joinmarket-ng),
-# so the same config.toml works regardless of where the data dir lives.
-# Absolute paths and paths starting with ~ are used as-is.
+# data directory. Copy (or volume-mount) those into your JoinMarket data
+# directory under "neutrino/" and they are picked up automatically, no need to
+# uncomment anything below. In Flatpak deployments this is wired automatically.
+#
+# Path to the neutrino-api TLS certificate (PEM). Default: "neutrino/tls.cert".
+# When the file exists it is pinned for HTTPS verification. When it is missing
+# but the server is HTTPS, the backend fetches and pins the certificate on first
+# use (trust-on-first-use) and writes it to this path. Relative paths resolve
+# against the data directory ($JOINMARKET_DATA_DIR or --data-dir, default
+# ~/.joinmarket-ng). Absolute paths and ~ paths are used as-is. Set to "" to
+# disable certificate pinning.
# neutrino_tls_cert = "neutrino/tls.cert"
#
# API bearer token for neutrino-api authentication.
# neutrino_auth_token = ""
#
# Path to a file containing the auth token (alternative to neutrino_auth_token).
-# Useful in Docker environments where the token is generated into a shared volume.
-# Relative paths are resolved against the data directory (see neutrino_tls_cert).
+# Default: "neutrino/auth_token". Missing files are ignored. Relative paths
+# resolve against the data directory (see neutrino_tls_cert). Set to "" to
+# disable token authentication.
# neutrino_auth_token_file = "neutrino/auth_token"
+#
+# Include unconfirmed entries from the neutrino-api watched mempool tracker in
+# UTXO listings, and overlay mempool spends on single-UTXO checks. Has no
+# effect against older neutrino-api builds without the tracker. Set to false
+# for chain-only behaviour.
+# neutrino_include_mempool = true
# ============================================================================
# Network Settings
@@ -235,6 +247,10 @@
# component_name is set automatically by each component (Maker, Taker, etc.)
# include_amounts = true
# include_txids = false
+# When include_txids is enabled, set a block explorer base URL to turn txids
+# into clickable links (e.g. "https://mempool.space/signet" -> ".../tx/<txid>").
+# Leave empty to show the bare txid instead.
+# mempool_url = ""
# include_nick = true
# use_tor = true