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
- 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://pruned.host4coins.net/blocks
- 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
A computer running a Debian / Ubuntu Linux flavour.
- See the tested-environments.
RaspberryPi 4 or 3
- Power supply (5V 3A and above recommended)
- Heatsink case
- 32 GB Endurence type SDcard
- (USB SSD to run a pruned bitcoin node locally)
host4coins.net
VPS eg:Recommended minimum:
- 1 GB RAM
- 1 vCPU
- 32 GB SSD
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?query=workflow%3Aarm64-rpi-image-build++branch%3Amaster+is%3Asuccess++
(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 -a
or - 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 pruned.host4coins.net/blocks
- 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
- Latest
- Debian Bullseye X86_64 desktop (images and logs available in GitHub actions)
- Raspberry Pi 4 running 64bit Debian Bullseye (images and logs available in GitHub actions)
- Ubuntu 22.04 Jammy X86_64 desktop (virtual machine)
- Previous versions tested
- 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
root
user 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
joinmarket
user 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