joininbox
joininbox copied to clipboard
A terminal based graphical menu for JoinMarket
JoininBox
A minimalistic, security focused linux environment for JoinMarket with a terminal based graphical menu.
- Features
- Required Hardware
- Set up using an SDcard image
- Set up JoininBox on Linux
- Tested environments
- Install JoininBox
- More info
- About JoinMarket
- Forums
- Donations
Features
- Send transactions with improved privacy using CoinJoin and PayJoin
- Run the Yield Generator as a service and earn fees for providing liquidity
- Use the JoinMarket-QT GUI remotely over SSH
- Signet support to test for free
- Connect remotely to a Bitcoin Core node
- RaspiBlitz over LAN or Tor
- RoninDojo over LAN or Tor
- Start a pruned node from https://prunednode.today/
- JoininBox is part the RaspiBlitz SERVICES
The addresses, transactions and balances of JoinMarket can be seen in the watch-only wallet of the connected node.
- use your own or a trusted node
- to protect privacy in case of physical access use disk encryption
Required Hardware
- RaspberryPi 4 (alternatively any other computer running a Debian Linux flavour)
- Power supply (5V 3A and above recommended)
- Heatsink case
- 16GB SDcard (minimum) - 32GB to use a pruned node
- (USB SSD to run a pruned bitcoin node locally)
- other tested hardware
JoininBox operates on the minimum viable hardware under the assumption that the seed (and passphrase) of the wallets used is safely backed up and can be used to recover the funds!
Set up using an SDcard image
-
Download the zip of the latest successful SDcard image build for the Raspberry Pi 4 or 3 from
https://github.com/openoms/joininbox/actions/workflows/arm64-rpi-image-build.yml
(note that need to be logged in to github to download the artifact image file) -
unzip and check the sha256sum verifying the .gz file integrity
sha256sum -c joininbox-arm64-rpi.img.gz.sha256 joininbox-arm64-rpi.img.gz: OK -
Write the joininbox-arm64-rpi.img.gz file to the SDcard with Balena Etcher - no need to decompress further
-
Assemble the RaspberryPi and connect with a LAN cable to the internet
-
Make sure that your laptop and the RPi are on the same local network
-
Boot by connecting the power cable
-
Open a terminal (OSX/Win10) and connect with ssh:
ssh joinmarket@rpi4-20220121→ the password on the first boot is:
joininbox -
Use the hostname of the latest SDcard image (
rpi4-20220121) or to find the IP address to connect to:- scan with the AngryIP Scanner
- use
sudo arp -aor - check the router interface
-
after the first login will be prompted to change the password to access the menu.

-
next will be presented with the CONFIG menu to
- Connect to a remote bitcoin node on mainnet
- Try JoinMarket on signet
- Start a pruned node from prunednode.today
- Edit the joinmarket.cfg manually
- Update JoininBox or JoinMarket

-
Update to the latest version of JoininBox and update JoinMarket if the latest version is newer than the one installed on the SDcard
After any of the options or Exit is selected the main JoininBox menu will open where you can start using JoinMarket

-
Find more info on the usage and community help at the end of this readme
Set up JoininBox on Linux
Tested environments
- Debian Buster X86_64 desktop
- Ubuntu 20.04 X86_64 desktop (virtual machine)
- Raspberry Pi 4 running 64bit Debian Buster
- Hardkernel Odroid XU4/HC1 running 32bit Armbian Buster
- Hardkernel Odroid C4 running 64bit Armbian Focal and Buster
- Raspberry Pi Zero, 3 and 4 running RaspberryOS (32bit Buster)
Install JoininBox
-
Start as the
rootuser or change with:
$ sudo - su -
Run the build script:
# download wget https://raw.githubusercontent.com/openoms/joininbox/master/build_joininbox.sh # inspect the script cat build_joininbox.sh # run sudo bash build_joininbox.sh -
start the JoininBox menu by changing to the
joinmarketuser in the terminal:
$ sudo su joinmarket
or
log in with ssh to:
joinmarket@LAN_IP_ADDRESS
the default password is:joininbox- will be prompted to change it on the first start
More info
- Video demonstration / slides of running JoinMarket with JoininBox on the RaspiBlitz
- How to prepare a remote node to accept the JoinMarket connection
- Frequently Asked Questions and notes
About JoinMarket
- JoinMarket documentation
- Recommendations for users on waxwing's blog
- JoinMarket on the RaspiBlitz guide
- JoinMarket on Ubuntu video by K3tan
- How to use JoinMarket command line focused video by Keep It Simple Bitcoin
- Connect JoinMarket running on a Linux desktop to a remote node
Forums
- Telegram: https://t.me/joinmarketorg
- IRC: #joinmarket on libera.chat or hackint.org
- Reddit: https://www.reddit.com/r/joinmarket/
- Keybase: https://keybase.io/team/raspiblitz#joinmarket
Donations
- For JoinMarket (general): https://bitcoinprivacy.me/joinmarket-donations
- To waxwing for JoinMarket: https://joinmarket.me/donations/
- To openoms for JoininBox (LN + payjoin enabled - open in the Tor Browser): http://7tpv3ynajkv6cdocmzitcd4z3xrstp3ic6xtv5om3dc2ned3fffll5qd.onion/apps/4FePMm7m818oppkTYNZRwbDnL6HP/pos