Logo Cryptotesters

A Complete Review Of The Samourai Wallet

Stelios Rammos |
Mon May 11 2020
cryptotesters podcast image

The Samourai Wallet is a privacy-focused, non-custodial, open-source, bitcoin-only wallet available exclusively on the Android platform. It does not have the slickest UI or simplest UX, but its unique privacy features make it one of the go-to options for someone that takes their privacy seriously.

The wallet offers a very complete set of features to improve your on-chain privacy and to maintain it when transacting with other peers. From Tor/VPN support to Stonewall and Stowaway, we will review each privacy feature in depth in the first section of this article.

Besides its privacy features, the Samourai Wallet also has all advanced features you would expect in a great bitcoin wallet. It supports native segwit addresses, connection to your own bitcoin full node (stay tuned for our guide on how to run one yourself!), individual UTXO handling, RBF (Replace-By-Fee) and more. We will also review all of those in detail in the second section of this article.

Finally, in the third section of the review, we will cover some best practices to ensure you maintain your privacy gains. We will go over some concrete examples of what to do and what not to do.

1 Privacy Features

Although Bitcoin was designed with privacy in mind, its current implementation is far from being privacy preserving. Each transaction exposes a lot of information publicly on the blockchain. Some companies have specialised on analysing that data and have developed advanced chain analysis software which can easily trace your on-chain activity.

The core Bitcoin developers are currently working on some promising privacy enhancing Bitcoin Improvement Proposals (or BIPs), but making changes to the protocol takes a long time as each proposal is thoroughly reviewed first.

Therefore, rather than waiting for Bitcoin to improve at the protocol level, some bitcoin wallets such as the Samourai Wallet dedicate their time and effort to implement privacy features built into the wallet itself.

These features put more control into the hands of the users and encourage a privacy-aware behavior. Although this is incredible for privacy, it also creates a barrier to entry for new users who have to get familiar with some technical terms and concepts.

You are probably reading this review in order to decide whether the Samourai Wallet is the right option for you. Therefore, we think it is important to give a more in-depth description of the privacy features in the wallet. We will cover some technical basics (while keeping it short and comprehensible) and explain the natural best practices that ensue. At the end of this article, you should have a better understanding, not only of the Samourai Wallet, but also of some more general privacy concept.

Which privacy features does the wallet have?

The privacy features included in the Samourai wallet fall under two categories: stealth and obfuscation. The features within the first category focus either on hiding your activity from prying eyes or on making it less easily linkable to you, for example by increasing plausible deniability of a transaction (ie: the chances that the inputs or outputs of the transaction belong to you). This category includes:

  • Tor/VPN (hiding)
  • Paynyms (hiding)
  • Ricochet (deniability)
  • Cahoots: (deniability)
  • Stonewall & Stonewall2x
  • Stowaway

The second category includes the most popular service offered by Samourai, called Whirlpool. Whirlpool mixes your coins to break them free from their transaction history with mathematical guarantee. There are two ways in which you can use Whirlpool:

  • Mobile Mixing on the Samourai Wallet App
  • Continuous Desktop Mixing with Whirlpool GUI/CLI

Both mixing and the Cahoots mentioned above make use of a special type of bitcoin transactions called Coinjoins. Coinjoins enhance privacy by letting two users (or more) collaborate in building the transaction to break the common-ownership-heuristic used by chain analysis software. If you are not very familiar with that concept, we recommend you first have a look at our article explaining how Coinjoins work.

In the following section we go over each feature in more detail. Feel free to jump directly to the features you are most interested about, but keep in mind some of the technical concepts and explanation might appear in a previous section.

Tor/VPN

When it comes to online privacy it is inevitable to talk about Tor or VPNs. Both of these mask your IP addresses, which is the equivalent of your online identity. You can have the best privacy features in place, if you are leaking your IP address to third parties every time you broadcast a transaction, you are doing it wrong. You are tying your activity and public bitcoin addresses to your personal IP address and, from there, it takes little effort for someone with the right tools and expertise to find your real name and address.

You’ll be pleased to know that Samourai Wallet has you covered. Their wallet automatically connects you to the Tor network and even offers you the option to connect to your own VPN through OpenVPN in the Networking settings of the application. The only downside to this feature is that it makes the wallet a bit slower on launch as it needs to connect to the Tor network, but that’s a small price to pay.

samourai vpn setting Caption: Connect to your VPN with OpenVPN

The wallet also offers the option to connect the wallet directly to your own "trusted node" but it is not recommended to use this feature and the Samourai team has indicated the feature will be removed in future versions of the wallet. Advanced users that wish to have complete control over the broadcasting/validation of transactions and mixing service (described below) can run their own Samourai Dojo server.

Mixing Service (aka. Whirlpool)

The Samourai Wallet uses Coinjoins in its mixing service, better known as Whirlpool (mixing is just another way to say that you are combining inputs to break deterministic links). The Coinjoins generated by Whirlpool are made of 5 different collaborators. You might have heard of the number of collaborators being referred to as the anonymity set with a higher number leading to better privacy (hiding amongst more people). However this is slightly misleading given that the anonymity set is actually dynamic as it depends on the future behavior of other participants in your Coinjoin transaction. Therefore the "true" anonymity set does not completely rely on the number of collaborators in the initial transaction.

As an example, if the identity of one of the participants is compromised, the anonymity set is quite naturally reduced by one. The Samourai Wallet team is well aware of this and have written a great piece on the matter which you can find over here: ‘Diving head first into Whirlpool Anonymity Sets.’.

In practice, mixing your coins in the Samourai Wallet requires some preparation steps:

  1. Select individual UTXOs you want to mix
  2. Select the pool you want to join
  3. Wait for your coins to be included in a Coinjoin transaction

Whirlpool lets you choose from three different pools which differ in the size of the UTXO chunks used as inputs and outputs. Each pool has a different entry fee attached to it. The three pool sizes and their respective entry fees are:

  • 0.5 BTC chunk size with 0.025 BTC entry fee
  • 0.05 BTC chunk size with 0.0025 BTC entry fee
  • 0.01 BTC chunk size with 0.0005 BTC entry fee

Notice, I said entry fee. Indeed, Whirlpool does not charge you per mix but per pool entry. That is, you can enter a pool and let your coins mix as many times as you wish, each mix corresponding to a new transaction. Although one mix is technically enough to break all deterministic links with your coins’ history, getting more mixes increases the anonymity set (and thus privacy) and supplies liquidity to the mixing pools thereby offering a faster mixing experience for other users. It’s a win-win situation.

When you mix your coins with Whirlpool your UTXOs will go through 3 different stages: pre-mix, mixing and post-mix. Pre-mix and post-mix coins has a separate view in the wallet to mark a clear distinction between each UTXO type. In fact, they don’t just have separate views, the UTXOs for each status are stored in different accounts to prevent you from merging them.

The pre-mix coins are an intermediate step in the mixing process found exclusively in the Samourai Wallet. Have a look at the figure below to get a better idea of what a pre-mix and mix transaction look like.

pre-mimx and post-mix whirlpool Caption: Example of a pre-mix and post-mix transaction from Whirlpool

The unmixed coins are held in the main Samourai Wallet view, where you first deposit your coins from external sources. They are the UTXOs that carry the burden of their transaction history which you want to get rid of through mixing. In order to mix your coins, you need to switch to the Whirlpool section of the wallet which can be accessed through the menu on the lower right of the screen (see screencap below).

samoura wallet bottom right menu Caption: Launch Whirlpool through the bottom right menu

This separation makes the user experiences a little confusing at first. The flow is unique to the Samourai Wallet and users who are more used to simple wallet views with a balance, a send and a receive button might need some time to get familiar. However, this is done to make users more aware of their UTXOs’ status and avoid breaking the privacy gains of doing a mix. Mixing your coins is not some silver bullet that will protect your holdings’ privacy no matter what. Merging a pre-mix and post-mix UTXO would ruin all the privacy gains of a mix. We will come back to this in the third section of this review.

The Whirlpool section holds your pre-mix and post-mix coins. Pre-mix UTXOs are the chunks which are used as inputs in the Coinjoin. UTXOs remain in the pre-mix section until enough (four) participants join the mix to have a complete anonymity set of 5. Post-mix UTXOs are the chunks that come out of the Coinjoin and are ready to be spent.

For a step-by-step guide on how to complete a Whirlpool mix, we recommend this guide from the Samourai Wallet documentation: ‘Mixing on Mobile with Whirlpool’.

For those of you interested in letting your coins mix continuously without having the service running on your phone all the time, you can pair up your wallet with the Whirlpool Desktop GUI/CLI. You can read up more on this in the Samourai documentation: ‘Pairing Samourai Wallet to Whirlpool Desktop’.

One downside to Whirlpool is the fact that liquidity is still relatively low in larger pools and mixes can take a long time to complete. The mobile mixing experience is also slightly less user friendly than the desktop application. In the app it is harder to tell which UTXOs are currently mixing, and it does not tell you how many mixes your coins have been through.

Cahoots

Cahoots refer to the set of privacy-enhancing spending tools the Samourai Wallet offers and are all based on the idea of Coinjoins. You’ll see them appear at the bottom of the Send screen. Some require additional configuration and are thus optional. You can switch the toggle to ON and will see appears the two options: Stonewallx2 and Stowaway.

samourai wallet cahoots Caption: Cahoot feature toggle

Stonewall & Stonewallx2

A Stonewall is a transaction that is made to look like a Coinjoin but is not a true Coinjoin in the sense that you still provide all the inputs in the transaction. The transaction will combine several of your UTXOs to produce a transaction with 4 outputs in total. Only one of those outputs is the actual send amount, the three others are simply decoys, with some being identical to the send amount.

The Samourai wallet will always attempt to create a Stonewall transaction if you are spending post-mix UTXOs. However there are some conditions that need to met first. For example the spending amount must be smaller or equal to half of your total available balance and the miner fee must be an even amount. We had some trouble getting consistent triggers of Stonewall when attempting to spend with a small UTXO set so it seems the conditions given by Samourai to trigger a Stonewall are not always sufficient.

Let’s say for example that Alice just mixed 0.1 BTC using the 0.01 BTC pool. So she now has ten 0.01 BTC UTXOs. If she tries to send 0.05 BTC to Bob, the wallet will automatically attempt to make a Stonewall transaction. The transaction will have all ten UTXOs as inputs and two 0.05 BTC outputs. The denomination of the inputs and outputs make the transaction looks like a Coinjoin, so a chain analyst cannot easily make the assumption that all inputs and outputs belong to Alice.

A Stonewall with multiple participants (at most 2 for now) is a Stonewallx2. Stonewall and Stonewallx2 complement each other to enhance privacy through deniability. Indeed, a Stonewall is indistinguishable from a Stonewallx2 and therefore makes it harder for chain analysts to make the assumption that all inputs are controlled by a single entity.

A Stonewallx2 requires some additional configuration on the user’s end. Since it is a collaboration spend between two Samourai wallet users, the transaction must be manually composed by the two users. Both users must use the Samourai wallet but the transaction outputs can be sent to a different wallet.

stonewallx2 participant selection screen samourai wallet Caption: Select a participant to make a Stowaway transaction

For more information on how to compose a Stonewallx2, please refer to the official documentation: ‘How to create a STONEWALLx2 Transaction’.

Note: you might have noticed the greyed out option to create a Stonewallx2 with Samourai itself. This option is not currently available at the time of writing. As soon as the feature gets released we will update this review to include that option as well.

Stowaway

This is the second tool you can use from the Cahoots toolset. A Stowaway is the ultimate privacy enhancing feature. In addition to obfuscating the senders and receivers of the transaction it also obfuscates the amounts and looks like any ordinary transaction. The transaction is once again a collaboration of two Samourai Wallet users. However this time they also collaborate on the amounts in the inputs and the transaction must be made between two Samourai Wallet users.

stowaway toggle on samourai wallet Caption: Stowaway selected as transaction type

Let’s take our previous example again and adapt it to be a Stowaway instead. This time you want to send 0.05 BTC to another user of the Samourai Wallet. Since you want to obfuscate the real amount sent, you will send more than 0.05 BTC and the receiver will contribute some UTXOs of his own to pay you back the extra change. So you send 0.08 BTC instead and, to compensate, he contributes 0.03 BTC to the transaction which will be paid out to a wallet you control. The net result is the same, you have 0.05 BTC less and he has 0.05 BTC more but this amount never appears in the transaction.

On the blockchain, this transaction does not look like a Coinjoin. In fact it looks exactly like any other transaction in the eye of chain analysis software. But in reality, it renders the assumptions and analysis made by that software completely wrong.

For more information on how to compose a Stowaway, please refer to the official documentation: ‘Creating a Stowaway Transaction’.

Ricochets

When you are spending from the unmixed UTXOs the Samourai Wallet lets you select an option called Ricochets. Just like the name indicates, this feature forces the transaction to make several hops before reaching its final destination wallet. Each hop is effectively an extra transaction.

Therefore, it will cost you more in fees as you will have to pay a fee for each one of those hops. This feature is particularly useful when you want to put some distance between the initial address and the destination. You might want to do so when sending your funds to an exchange if you are scared your Samourai address has been flagged and the exchange might freeze your funds. Note that at the time of writing there aren’t any know occurences of this happening for any Samourai users.

In case you want to be even more careful, Samourai lets you select an option called Staggered delivery, which ensures there is one block in between each block. This makes it slightly harder to link the hops to each other.

ricochet samourai wallet Ricochet and staggered delivery feature on

Although Ricochet is nice to have, the privacy enhancement it offers is not that big. It might allow you to avoid automatic checks from chain analysis software but someone determined to dig out your on-chain activity won’t find it very difficult to identify a Ricochet. It is also quite naturally not available for post-mix UTXOs as a Ricochet would actually decrease the privacy gains of the mix.

Paynyms

The final privacy feature of the Samourai Wallet is a neat use of the BIP47 Reusable Payment Codes called Paynyms. Paynyms can be used to transact more privately while also making it more user friendly! You no longer need to generate new addresses, copy and paste them or scan QR codes to send or receive a transaction from a friend. With Paynyms, you get a unique payment code that can be freely shared with your peers. It will automatically generate new addresses when someone wishes to make a payment to you. This prevents address re-use and prevents outside observers from knowing which address was used for a given transaction. Unfortunately, Paynyms are not widely used or implemented in other wallets, limiting their usability.

paynym feature samourai wallet Caption: Samourai Wallet Paynyms

2 Additional Advanced Features

  • Individual UTXOs handling/labeling, RBF, receiving to like-typed outputs

Our review wouldn’t be complete without covering the additional features of the wallet. These aren’t directly linked to privacy but they make the Samourai Wallet one of the bitcoin wallets with the most complete set of features out there.

Individual UTXO handling/labeling

You might initially not be a fan of this one if you enjoy simplicity but it is well worth getting used to it if you want more control over your coins. Individual UTXO handling means that you get to pick which exact UTXOs to include in any given transaction. You are essentially choosing the building blocks of your transaction, like picking which bills and coins to use for a cash payment.

UTXO labeling is pretty self-explanatory, you can label any given UTXO to remind you of where it came from, for what occasion or any other short description which may help you in the future.

This is not just a nice feature to have, it can be a crucial feature to keep your UTXOs neatly organised. You may, for example, want to keep track of your KYC’d UTXOs by labeling them as ‘KYC’. That way you know not to include them in a transaction with non-KYC coins, which would be a shame.

utxo notes and status Caption: Add a label to your UTXO to remember where it came from later on

RBF

RBF stands for Replace-By-Fee and it is, in our opinion, a must have for any serious bitcoin wallet. The RBF option let’s you update the fee rate of a transaction after you have already included it in the mempool.

Since Samourai Wallet lets you pick the fee rate of a transaction, you might want to over-optimise your fee and set it to the lowest fee rate of 1sat/vbyte. But what if the Bitcoin network happens to be really busy and the mempool never reaches the 1 sat/vbyte transactions? Without the RBF option you are forced to wait for the network to get uncongested. With RBF, you can simply change the fee rate and re-broadcast the transaction.

Note this setting is not enabled by default in the wallet, but you can easily activate it by going through the advanced settings of the app and ticking the box next to “Spend using RBF”.

samourai wallet advanced settings Caption: Enable RBF in the advanced settings

Receiving to like-typed address

Alright this one is also a privacy feature, albeit a subtle one. In short, if you activate this feature, you ensure that the change of a transaction will be sent to an address type equal to the output address type. That is, if you send a transaction to a P2PKH address type, you will receive the change of the transaction to a P2PKH address too, even if you have set your default receiving addresses to be bech32. The reasoning behind this feature is to make it harder for a chain analyst to identify the real output and the change output.

If you did not have this feature active and you sent a transaction to a P2PKH address, the change address would be fairly easily identifiable (although there is no certainty).

3 Risks and best-practices of post-mixing transactions

We finished covering all the privacy features of the wallets. As you saw, Samourai Wallet gives you an incredibly powerful set of tools to improve your on-chain privacy. Unfortunately, as powerful as these features are, their efficacy depends on the user understanding how those features work and some bad practices can render them useless.

This is our main criticism of privacy features that are not built into the bitcoin protocol. Although it is not Samourai's Wallet fault per se, we believe they should always make this clear to their user. Otherwise, the false sense of security that can result from using these wallets is worst than not using them in the first place.

The user should be made aware that the wrong behavior after using the privacy features above can very easily render them useless and undo all the privacy gains. This means that we do not recommend this wallet to users that are not willing to put in the time to understand these features and the best practices. .

In this section we will go over the main bad habits and mention the simple solution each one has. You will notice most of them are not about what you should do but rather what you should not do. If you remember anything from this section let it be this: inaction after a coinjoin is the best way to preserve privacy, any movement of coins leaks information.

Doxxic change

Almost all bitcoin transactions create change. It’s hard to avoid it and pretty unrealistic to aim for 0-change transactions all the time and here is one particular situation where change is almost unavoidable: when you use Whirlpool.

Since every pool has a clear denomination of 0.5, 0.05 or 0.01, you are pretty much bound to have some change left at the end simply because it is smaller than the smallest denomination of 0.01. For example, if you want to mix a total of 0.5434 BTC, you will end up with 0.0034 unmixed bitcoin. With the current pool denominations your unmixed change can be as big as 0.00099999 BTC (or 99.999 satoshis), which, at the time of writing, is worth approximately $7.

That change is particularly dangerous, which is why you might hear it being referred to as doxxic change (from toxic and doxxing). Some users do not like the idea of letting this change go to waste and they end up sending it to another wallet they control. Perhaps in cold storage, along with the post-mix UTXOs. **Do not do this. **

Combining post-mix UTXOs and pre-mix change will ruin the privacy gains from your mixes because you link them back to their coin history. The best thing to do is to forget about this change until you’ve accumulated enough to add it in a new mix. Fortunately, the Samourai wallet does not let you construct a transaction with pre and post-mix UTXOs, but they cannot prevent you from sending them to a same wallet, so be careful.

Some other ideas are to donate the change to a project you support, spend it in a shop that accepts bitcoin, loop it in the Lightning Network with a submarine swap or simply add the missing amount of bitcoin to reach 0.01 BTC.

Coin consolidation

Coin, or UTXO, consolidation refers to the act of combining your UTXOs into a single one. Sometimes it might be a good idea to consolidate as in the future less UTXOs means a smaller transaction size and therefore less fees. But once again, from a privacy stand-point do not do this after mixing your coins.

If you consolidate your UTXOs you are showing to everyone that they all belong to a single entity. This does not only hurt your privacy, it also hurts the privacy of all the people you coinjoined with. Indeed, the anonymity set strongly depends on all participants remaining cautious. If you consolidate your 100 UTXOs into a single UTXO you just reduced the anonymity set of 100 Whirlpool mixes.

utxo consolidation after coinjoin Caption: Example of UTXO consolidation after a Coinjoin

This does not only apply to the transaction you do directly after a mix. It applies to any transaction you do in the future, which is probably why most users forget this warning. Let’s say for example that you sent all your post-mix UTXOs to your hardware wallet using all the best practices. You used Stonewall/Stonewallx2 transactions and sent the rest of the UTXOs individually. Then after some years of strong hodling you decide to move your funds to a more secure multi-sig wallet and you send all of them in a single transaction. You just burned your privacy gains.

Address re-use

Address re-use is the enemy of privacy. Whether you are receiving bitcoin from a friend or sending some to yourself from another wallet, you should always use newly generated addresses. If you are transacting with another Samourai Wallet, the best way to do this is to use the built-in Paynym feature.

A more subtle situation where you want to avoid address re-use and/or consolidation is after doing a Stonewall transaction. The privacy gains of a Stonewall transaction depend on its plausible deniability and the fact that it could be a Stonewallx2 with multiple participants. If you were to send the second half of the Stonewall UTXO’s (those sent back to you) to the same address as the first half, you would render the Stonewall useless.

Moving coins out of mixing

If you want absolute privacy, do not move your coins out of the mixer. Indeed, as soon as you move your coins out of the mixer, your anonymity set starts going down. For this reason it’s recommended to only move them once you want to spend your coins.

Note: Don’t forget to apply the best practices mentioned above when sending back to a hardware wallet.

Conclusion

We’ve come to the end of our Samourai Wallet Review.Clearly this wallet is not for beginners and although the Samourai team has made a great effort in implementing all the above features in a simple UI, there is a learning curve for using this wallet. The concept of UTXOs is still unknown to a lot of people and requires some level of technical understanding on the user’s part.

Without a good understanding of UTXOs the privacy features will be hard to grasp and therefore the user is likely to mess up at some point in the future as described in the previous section. Moreover, the process of moving coins around through different sections of the wallet, mixing pools, etc will be very unfamiliar to any new user.

On the other hand, the Samourai Wallet offers, hands down, the most complete privacy enhancing tool set needed to improve and preserve your privacy. We look forward to future developments of the wallet and will keep updating this review for any additional features that might appear.

Here are some features we would love to see in the future:

  • A pool with smaller denomination.
  • Automatic trickle down of UTXO’s through the pools to avoid having to manually enter the UTXOs in each pool
  • Remixing for larger denominations sometimes takes over a day to complete due to lack of liquidity. The Samourai team could encourage users to leave their UTXOs in the pools to add liquidity by redistributing a part of fees to them. Samourai could claim to be the first company to pay interests to its users while increasing their privacy, the ultimate win-win.

If you enjoyed this review, stay up to date with all our latest product reviews by subscribing to our Newsletter. We strive to always offer the most complete and accurate product and service reviews so that you can make informed choices!

Share
Twitter logoLinkedIn logo
cryptotesters author photo
Stelios Rammos

Data Scientist by day, Bitcoiner by night and CryptoTester by nature. Check out my blog posts if you want to learn more about Bitcoin, the Lightning Network and the cool apps people build on them.

Cryptotesters Logo
We are a multi-faceted team of crypto enthusiasts based in Berlin.
Twitter logoLinkedIn logoFacebook logotelegram logo