Using Samourai Wallet in connection with your own RoninDojo full node provides you with a powerhouse of private mobile Bitcoin tools. Before you get started, it will help to have a recovery sheet or notebook to write your seed phrase and passphrase information.
You can download the Samourai Wallet application from an F-Droid repo, its website or the Google Play store .
Simply install the application and follow the on-screen system prompts. Once you launch the application, select “MAINNET.”
Next, you will be greeted with a helpful on-boarding presentation.
Next, you will be asked to choose a directory to store your encrypted wallet backup file. Then allow system access.
Next, you can toggle on the option to enable Tor. Then toggle on the option to connect to your own Dojo. Then click on “Scan QR” and the application will ask you to grant camera permission.
This is where you want to select “Manage” in the lower left-hand corner of the “Dojo” window in your RoninDojo UI dashboard. Make sure you have toggled on visibility. Then scan the “Samourai Dojo” QR code from your mobile device. Once the details are received by the application, press the “Create a new wallet” button in Samourai wallet. Or if you have a wallet to import, then select the option to “Restore an existing wallet” instead.
Next you will be asked to create a passphrase. Using a strong, high-entropy passphrase will help protect your bitcoin in the event that your 12-word seed phrase is ever compromised. Check the box that says you understand that no one can help you recover a lost or forgotten passphrase. Keep in mind too that any passphrase you enter will generate a completely different wallet, so make sure you are writing this down correctly and double checking your work.
If you ever need to restore your wallet and you enter a passphrase that is off by even a single character then it will generate a completely different wallet. Then the app will ask you if you would like to download the recovery sheet .
The next screen will present your 12-word seed phrase. Do not share these words with anyone for any reason. These 12 words are a human-readable representation of your Bitcoin private key. Anyone who gains access to these words and this passphrase can take your bitcoin. Do not take a screenshot of these words. Do not take a picture of these words. Do not save them in a text file or other digital format. Make sure you write these down in order and then secure this seed phrase like it was cash, gold or jewelry. Many people choose to stamp their wallet recovery information (seed phrase and passphrase) into metal that can withstand extreme environments such as fire and flooding. You can find further information on this topic here .
Then you will be asked to confirm the passphrase you entered and then create a PIN. The PIN will be required to access the Samourai Wallet application, so use a strong PIN that is not easy to guess or the same as your primary phone access PIN.
Finally, you will be presented with your unique PayNym — you can claim it so that others can easily connect with you. Then you will be at the home screen, you can click on the blue “+” sign to see options for Whirlpool, send, receive and PayNym. The receive option for example is where you can generate new Bitcoin addresses.
Now you have a mobile Bitcoin wallet with built-in privacy tools that communicates with your very own self-hosted full Bitcoin node over Tor. Congratulations, this is a major step along the path to sovereignty.
Connecting Whirlpool
This section will demonstrate how to connect the Whirlpool desktop client to your Tanto full node and your Samourai Wallet. With this configuration, you will be able to have your UTXOs mixing non-stop in the background from your desktop client and powered by your own full node. When you mix from mobile only, the mixing stops as soon as you shut down your mobile Whirlpool client in Samourai Wallet.
First, you will need to download the Whirlpool client appropriate for your operating system. The different options along with accompanying developer signatures can be found here and detailed installation instructions can be found here . Be aware that you will likely need to install OpenJDK as well, which is covered in the installation instructions.
*In a future release of the RoninDojo UI, the Whirlpool URL will be available from the web interface dashboard and you will no longer need to retrieve this information from the terminal as demonstrated here.
Once you have your Whirlpool client installed and your Samourai Wallet connected to your RoninDojo Tanto, you can make an SSH connection to the RoninDojo and start the Whirlpool service. The SSH connection can be made with the same username/password you used for the RoninDojo UI.
Once connected, navigate to “Samourai Toolkit” then “Whirlpool”:
Then select “start,” and a script will run briefly and then you can hit any key to return to the main menu when prompted.
With the Whirlpool service started, and back at the main menu and now navigate to “Credentials” then “Whirlpool.”
This is where you can retrieve the .onion URL you need to use in the Whirlpool client GUI to get it configured. Highlight this URL and use “ctrl+shift+c” to copy it to your clipboard.
Now open the Whirlpool client application you installed earlier. Select the “Advanced: remote CLI” option and where it says “https://my-cli-host:8899” paste the .onion URL from your RoninDojo terminal. Depending on whether or not you’re running a Tor daemon or just the Tor browser, you may need to select either “9050” or “9150” for appending the Tor proxy. Leave the API key blank, this will automatically be handled once initialized. Then click on “Connect.”
Give the GUI some time, Tor connections can take a little while. You may need to try this a couple of times before the connection is made. But once the connection is made, you will be presented with a screen asking you to input the Whirlpool pairing payload from your Samourai Wallet.
In Samourai Wallet, click on the three-dot menu in the upper right-hand corner and select “Settings” then “Transactions” then “Pair to Whirlpool GUI” at the bottom. This will display a QR code that contains your Whirlpool payload. Simply click on the QR code option in the desktop GUI and this should launch your webcam then hold up the QR code on your mobile so the camera can scan it.
Once received, click on “Initialize GUI.”
Next, enter the passphrase for your Samourai Wallet and click on “Sign in.”
Once signed in, you should be able to see your balances and mixing activity and then you can set targets for how many mixes you wish to achieve. You can even generate deposit addresses from the Whirlpool GUI.
If you have received bitcoin that you would like to mix, simply follow these steps from your mobile Samourai Wallet:
Select the blue “+” sign and then the “Whirlpool” button
This will launch the mobile Whirlpool client, again select the “Whirlpool” button
Select the option to “Mix UTXOs”
A list of the available UTXOs from your deposit wallet will be displayed. Select the UTXOs you would like to mix and then click on “NEXT.” Keep in mind that if any of these UTXOs have a history that you do not want connected on-chain, you should consider selecting them independently of one another.
Select the cycle priority (miners fee), select the pool size appropriate for the amount you are mixing and select “REVIEW CYCLE DETAILS.”
You will be presented with the details of the TX0 that you are about to make. Select “BEGIN CYCLE” once ready and the transaction will be built and then broadcast from your RoninDojo Tanto to the Bitcoin network.
Now your resulting UTXOs from the TX0 will be registered as available inputs to new mixes. You can now close your mobile Samourai Wallet application and the desktop Whirlpool GUI will keep your resulting mix outputs available as free riders for future mixing rounds.
Conclusion
Now you have seen how easy it is to connect and configure your own Bitcoin full node, how to install and configure a mobile Samourai Wallet, and how to connect them both to a desktop Whirlpool client. With this kind of setup you are able to bring the power of a ZeroLink CoinJoin implementation with you in your pocket while communicating back to your own node at home over Tor. You can also connect with peers to make collaborative transactions that preserve the anonymity gained in Whirlpool and break on-chain heuristics.
Whirlpool
Every Whirlpool transaction has five inputs and five equal-sized outputs. There is nothing about any particular output that makes it any more likely to belong to any particular input than any of the other outputs.
There are strict rules that are enforced by the blinded Whirlpool coordinator such as:
Each CoinJoin transaction will have five inputs
Each CoinJoin transaction will have five outputs
No address reuse
All of the outputs from a CoinJoin transaction will be the same denomination
UTXOs do not cross from one pool to another, 0.05 BTC UTXOs do not get used as inputs in 0.01 BTC sized Whirlpool CoinJoin transactions, for example
No single wallet may have more than one input to a transaction. So all five inputs must come from different wallets.
No two outputs from a CoinJoin transaction may be used together in a future CoinJoin transaction
Every CoinJoin transaction will have a minimum of two fresh participants to the liquidity pool and a maximum of three
Every CoinJoin transaction will have a minimum of two re-mixing participants and a maximum of three. These participants may be referred to as “free riders.”
Fresh participants cover the miners fee
Re-mixing participants continue mixing for no additional fee
Only UTXOs from a previous CoinJoin transaction (free riders) or UTXOs from a Transaction Zero (TX0) (fresh participants) will be allowed as inputs.
Cahoots Post-Mix Spending Tools
Stowaway transactions are collaborative transactions made between the sender and receiver that obfuscate the amount being spent.
Source: undefined@BitcoinQ_A
A Stonewall transaction is attempted by default when spending from your post-mix wallet. This transaction looks identical on-chain to a collaborative StonewallX2 transaction.
A StonewallX2 transaction looks identical on-chain to a Stonewall transaction but is made between two peers and can be spent to a third party (check out this guide to StonewallX2 transactions ).
Check out a general guide on collaborative cahoots transactions here .
Collaborative cahoots transactions are made with PayNyms, and each instance of Samourai Wallet gets a unique PayNym. PayNyms can send messages to each other to build these collaborative transactions over the Soroban comms layer which is encrypted over Tor by default. Sparrow Wallet has also implemented Whirlpool, PayNyms and BIP47. So even if you do not have an Android mobile device, you can still gain access to these powerful privacy tools by installing Sparrow Wallet on your PC.
Being able to make these kinds of transactions from a mobile wallet or desktop wallet that communicates back to your own Bitcoin full node (the Tanto) over Tor is a massive step toward guarding your privacy, being your own bank and using the best privacy tools available today for your Bitcoin transactions.
To learn more about RoninDojo and to order your Tanto, visit its website at ronindojo.io . When you want FOSS software with a laser focus on privacy, this is the sharpest tool available for your toolbox.
This is a guest post by Econoalchemist. Opinions expressed are entirely their own and do not necessarily reflect those of BTC Inc or Bitcoin Magazine.