- Python 91.2%
- Shell 5.9%
- TypeScript 1.1%
- Dockerfile 0.6%
- JavaScript 0.5%
- Other 0.7%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
The jmwalletd rescanblockchain endpoint drives rescans through start_background_rescan, which forwarded out-of-range heights straight to Bitcoin Core. Heights above the tip (e.g. JAM's default 481824 on signet/regtest) failed server-side with 'RPC error -8: Invalid start_height' after the API had already returned 200 OK. Normalize the height in a helper shared with rescan_blockchain: clamp into [0, chain tip] and floor at the wallet creation height. Fixes #556 Changelog: Rescans requested above the chain tip (e.g. JAM's default mainnet SegWit height on signet/regtest) are clamped to the tip instead of failing server-side after a 200 OK response |
||
| .github | ||
| completions | ||
| directory_server | ||
| docs | ||
| flatpak | ||
| jmcore | ||
| jmwallet | ||
| jmwalletd | ||
| maker | ||
| media | ||
| orderbook_watcher | ||
| scripts | ||
| signatures | ||
| taker | ||
| tests | ||
| tumbler | ||
| .coveragerc | ||
| .dockerignore | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| AGENTS.md | ||
| CHANGELOG.md | ||
| complexipy.toml | ||
| conftest.py | ||
| docker-compose.jam-ng-signet.yml | ||
| docker-compose.yml | ||
| install.sh | ||
| LICENSE | ||
| mkdocs.yml | ||
| properdocs.yml | ||
| pytest.ini | ||
| README.md | ||
| requirements-docs.in | ||
| requirements-docs.txt | ||
| SECURITY.md | ||
JoinMarket NG
JoinMarket NG is a modern implementation of the JoinMarket CoinJoin protocol for Bitcoin privacy.
It is wire-compatible with the reference JoinMarket network and supports both liquidity taking (jm-taker) and liquidity making (jm-maker).
Start Here
- Documentation home: https://joinmarket-ng.github.io/joinmarket-ng/
- Installation guide: https://joinmarket-ng.github.io/joinmarket-ng/install/
- Technical docs: https://joinmarket-ng.github.io/joinmarket-ng/technical/
Quick Start
- Install (Linux/macOS):
The installer needs curl to fetch itself and uses sudo to install
system packages on Debian/Ubuntu (so on a fresh minimal image you'll
want curl, sudo, and your user added to the sudo group; on
macOS you'll want Homebrew). Everything else (gnupg, git,
build tools) is installed for you on first run.
curl -sSL https://raw.githubusercontent.com/joinmarket-ng/joinmarket-ng/main/install.sh | bash
source ~/.joinmarket-ng/activate.sh
- Edit
~/.joinmarket-ng/config.tomland set your backend (descriptor_walletfor Bitcoin Core, orneutrino):
[bitcoin]
backend_type = "descriptor_wallet"
rpc_url = "http://127.0.0.1:8332"
rpc_user = "your_rpc_user"
rpc_password = "your_rpc_password"
- Create wallet and get deposit addresses:
jm-wallet generate
jm-wallet info
- Run CoinJoin as a taker, or start earning fees as a maker:
jm-taker coinjoin --amount 1000000 --destination INTERNAL
# or
jm-maker start
Module Docs
jmcore: https://joinmarket-ng.github.io/joinmarket-ng/README-jmcore/jmwallet: https://joinmarket-ng.github.io/joinmarket-ng/README-jmwallet/taker: https://joinmarket-ng.github.io/joinmarket-ng/README-taker/maker: https://joinmarket-ng.github.io/joinmarket-ng/README-maker/tumbler: https://joinmarket-ng.github.io/joinmarket-ng/README-tumbler/jmwalletd: https://joinmarket-ng.github.io/joinmarket-ng/README-jmwalletd/orderbook_watcher: https://joinmarket-ng.github.io/joinmarket-ng/README-orderbook-watcher/directory_server: https://joinmarket-ng.github.io/joinmarket-ng/README-directory-server/signatures: https://joinmarket-ng.github.io/joinmarket-ng/README-signatures/scripts: https://joinmarket-ng.github.io/joinmarket-ng/README-scripts/
Community
- Telegram: https://t.me/joinmarketorg
- SimpleX: https://smp12.simplex.im/g#bx_0bFdk7OnttE0jlytSd73jGjCcHy2qCrhmEzgWXTk
License
MIT: https://joinmarket-ng.github.io/joinmarket-ng/license/
Acknowledgements
JoinMarket NG builds on the work of the original JoinMarket project. Special thanks to Adam Gibson (@AdamISZ) and all past and present JoinMarket contributors.
Thanks to @1440000bytes (Floppy) for the ongoing external audit, and to @L3ftBlank for beta testing and contributions. And to everyone who has opened an issue, submitted a PR, or joined a discussion. You're part of this too!
Sustained by grants from OpenSats and the HRF Bitcoin Development Fund. Keeping this project free, open, and independent.