To preface, I’m only going to look at software wallets in this review. Paper and hardware wallets and have their own features, but I will ignore them for our purposes.

What do I need in a wallet?

Necessary:

Complete control of funds

Secure Environment

Open Source Software (at least the security critical components)

Segwit Compatible (only for BTC, not BCH)

Good but optional:

Privacy (as much as possible)

Ability to connect to any Bitcoin node

Fee control

Great user interface

Let’s talk about each point and why it is important.

Complete control of funds

There is software that will claim to be a Bitcoin wallet, but a more accurate description would be a Bitcoin bank. Apps like Coinbase, Bittrex, and Robinhood are exchanges (banks) where users buy and sell coins. While coins can be stored on these exchanges long term, they shouldn’t be.

Until coins are sent to a personal Bitcoin wallet, they are still owned by these centralized exchanges. If something happens to the exchange then the user’s coins can be gone forever, which is exactly what Bitcoin was designed to guard against. A common Bitcoin motto is “be your own bank”.

The owners of coins have private keys that prove that only they have the ability to spend the coins. If a user doesn’t own their private keys, then they don’t really own the Bitcoin. Bitcoin exchanges/banks do not give users control of private keys.

Secure Environment

It is dangerous to interact with Bitcoin on an insecure device. Tricking users to spend to the wrong address via clipboard hacks or stealing private keys are common practice for hackers. The most important thing is to keep a device clean from malware with a good antivirus and being careful about what is downloaded. I recommend using a wallet on the following operating systems in descending order of security:

Android/iOS (mobile is king in security) Major Linux Distributions (Ubuntu, Debian) Mac OS Windows

Open-Source Software

Software that is open-source has code that is made available to the public so that anyone (usually other developers) can audit it. This dramatically decreases the chances of there being any foul-play by the creators of the wallet. Open-source code can be trusted because it can be verified.

Segwit Compatibility

An upgrade was introduced on the Bitcoin network in 2017 that changes the way transactions can be sent on the network. Wallets that are segwit compatible take advantage of these upgrades. Segwit transactions take up less space in a Bitcoin block, which means these transactions have lower fees and are processed faster. Also, second layer scaling solutions like the lightning network will only work for segwit capable coins.

Bitcoin Cash (BCH) wallets do not use segwit for scaling. Bitcoin Cash uses a seperate “Big Block” solution. If using a BCH wallet, omit this requirement.

Privacy

Bitcoin is inherently anonymous, but not necessarily private. Take a look at my earlier article for more details: Bitcoin vs Banks

There are wallets out there that increase privacy by communicating over the TOR network or by using VPN. Communicating over these networks increases privacy because it make it much harder for an outside party to see what kind of transactions are being sent from a device.

Connect to any Node

A full Bitcoin wallet needs to have a copy of the Blockchain (transaction records) in order to validate balances. At the time of writing, the blockchain is over 150GB in size, making it impossible to store on small devices.

In order to be absolutely sure that their wallet is accurate and not being tampered with, a user needs to either use a full wallet (like Bitcoin Core) or run a light wallet that can connect to a trusted node. A full wallet needs to be run on a more powerful computer while a light wallet can easily run on a phone or tablet.

Fee Control

Bitcoin transactions have associated fees that are paid to those individuals who are donating hardware to run the network (AKA “miners”). Most wallets automatically calculate economic fees for the user, but it is nice to be able to change the fees.

A higher fee usually means that a transaction will process more quickly, but it depends on how many people are transacting on the network at that moment. If few people are transacting, it is good to be able to set a low fee because a high one isn’t necessary.

Great user interface

A simple and easy to use interface is always desirable in software. This is basically just preference, but upon downloading and experimenting I’m sure anyone can decide which app feels the best to them.

Final Recommendation

Based on everything in this article, my favorite wallet out there right now is Samourai. It’s is the only wallet I know of that has such great privacy features, and allows users to connect to their own node.

I have also used Bitcoin Core, which is a solid option as it the most official wallet out there (if you can even say Bitcoin has an “official” wallet)

Here is a large list provided by Bitcoin.org, just choose the features that are important to you! Good luck.

Donate

BTC: bc1qvw0ytfntx6zs0lfsruem6xwj0mewng523ktatp

ETH: 0x3d737324ed6Ac204a809d17bc4807C6D2a05D6eD

BCH: qz5j4ypu4wf2x3960elyyxz4vk0z2p9lagfh52xq59

Nano: xrb_1ipdmx5ck6fwc1hkt3fg631z6twjo9e5m6e9dbenm65sbb3e4hgmd1ygxnq3

Follow

twittter: @wagslane