There are many posts discussing which Hardware Wallet to buy or why some Hardware Wallet companies don't accept Bitcoin, etc., but what if the whole point of Bitcoin is about self-responsibility, which includes making your own cold wallet? 🤔

I'm not against anyone buying any HW if you really want to, as it's definitely better than storing it in exchanges or putting your hard-earned sats in any hot wallets. But learning how to make my own cold wallet was one the most empowering moments in my Bitcoin journey, and you can create it on the go instead of waiting for deliveries, which is much more efficient and private too!

Why not Buy a Hardware Wallet and Done?

I purchased some hardware wallets before and really regretted them, now they are sleeping somewhere and as decoys... but if you really want to buy one, I recommend buying these hardware wallets when traveling. For example, I bought mine when I was in Europe, and not only did it deliver faster and with lower tax, all I did was use the Airbnb address and random name, done. Also, ideally, you shouldn't pay it with any fiat cards under your name; otherwise, it's all linked.

But the most turnoff part for me is you need to keep updating it, and the last thing I want is to pay attention to whatever this company is doing. Seriously, all I need is somewhere SAFE to keep my stash, so I found a better solution later: a DIY cold wallet with Tails OS — the simple understanding of this setup is using an encrypted USB with a clean OS and a built-in Electrum Wallet, and you can create any cold wallet offline this way. ( sorry, this is the best I can explain, and I don't know too much about the deeper tech levels )

DIY Cold Wallet Benefits

Private: you avoid all the potential KYC or information leaked, as these hardware wallets are essentially honey pots.

Low key: you can make your own cold wallet with USBs in different looks, while carrying hardware wallets is basically telling others: hey, I have Bitcoin, and here is where I store them.

Low cost: why waste unnecessary money when you can stack more sats? And making your own with a USB is dirt cheap...

And the good news is if I can do it, you can do it too! just need to be patient, read on to find out how.

How to Make a Cold Wallet?

1. Use cash to buy a normal USB ( 8 GB minimum )

Fun fact: you won't even have any receipt when paying in cash these days; also, choosing any USB between 16 to 32 GB is good enough.

2. Install tailsOS into the USB stick.

It might take some time to download, and simply follow all the detailed steps here. ( this tutorial is based on MacBook )

a. Download TailsOS

b. Verify your download

c. Download balenaEtcher

d. Flash TailsOS into your USB

Open balenaEtcher — Flash from file ( choose TailsOS ) — Select target ( your USB and all the data on this USB stick will be lost )  — flash — wait a bit and done — restart the computer.

Pretty easy, right?

Now you have the USB ready, and we are moving on to creating a cold wallet offline! 🥁

3. Boot the USB.

Press and hold the Option when you turn on the computer, then choose the USB stick ( FEI boot ), and press Enter, then it will load the welcome screen, here is a good video showing the process when enter your TailsOS. ( First-time users can just click start tails to see how things are inside, play around and get familiar with the OS. )

Extra note

/ It doesn't work with newer Mac computers with an Apple processor (M1 or M2), feel free to chip in solutions.

4. Create the persistent storage and set the password

If you want to keep some important information inside the USB stick, you need to set the persistent volume so you can still access the data after each shutdown because everything you do in TailsOS will be wiped the second you close it by default.

After all these setups, save something into the persistent volume, reboot the USB again, and try to see how things are entering with the password and without it. Fun fact: if you access the OS without the password, you'll enter a clean OS; And the beauty of this is even if someone else picks up your USB, they can only enter into this clean OS, with NO access to any encrypted data!

Sharing one more story: I once lost my bag with a USB with a small stash of emergency funds. However, I was quite calm thinking about where I possibly left my bag in because a. I got backups, b. people could never have guessed there was Bitcoin in it, c. no one could access that USB but me, and that's the whole point.

5. Open the built-in Electrum.

Here it comes with the normal practice of creating a new wallet in Electrum: do this when you are alone and in a calm mind; Cover ALL cameras and turn off the phones.

a. Create a new wallet

Name it to anything you like, and optionally set a password for this wallet file; then, you can simply use this password with the wallet file to open the wallet without inputting the seeds later.

You then would be shown different wallet options to choose from. For simplicity, I'm showing you how to make the standard one.

b. Write down the seeds

Create the seeds, and write them down somewhere safe.

Then you would be asked to type and confirm the seeds.

Optional: you can also extend the seeds with custom words by clicking the options; As for how to keep the seeds, one thing to note is that you always make copies, ideally 3, and in different places.

Simple solutions as reference

  • Make it into half or three pieces, and put it in different places: it can be digital, meat place, or a mix of both.
  • Use your own memory, especially for your biggest stash.
  • Make a song or poet with the words.

Be creative, but always keep it simple, and one of the good solutions is to make use of the built-in KeePassXC password manager: open it — create a new database — set file name — set password — save it in persistent storage ( important! otherwise, it would be GONE after the computer shuts down ), and mark down the Master key, seeds, and a few addresses for the later verifying.

- Master Key: click Wallet Information, it's showing in the Master Public Key area.

- Seeds: the 12 words that you just wrote down.

- Address: click View and Show Address, mark down the first and the last few addresses.

Optionally, you can also mark down the derivation path and fingerprint.

c. Set the password to encypt wallet file

Important: This password for the wallet file is useful only if you are storing the wallet file in Persistent Storage. Otherwise, the file would be gone the second you shut down the computer.

d. Restart the computer (stay offline) and verify.

You should always verify the wallet before depositing any funds: restart the computer and open both Electrum and KeePassXC password manager — create a wallet — name it — Standard wallet —I already have a seed — enter the seed — load the wallet address and compare these addresses with those that we previously marked down in KeePassXC — if it's the same, then congrats! you have learned how to make your cold wallet:)

This is the simplest setup, and you can definitely try with 2FA or multi-sign; Choose whatever works for you, but always KISS because oftentimes, you are your own enemy.

The Art of Using the Cold Wallet

Firstly, using cold wallets for long term saving or create Lightning channels only, it's not meant for daily use.

How to deposit?

Create a watch-only wallet, but you can't use this watch-only wallet to send any sats; the watch-only wallet choice can be a Blue wallet or Green wallet, or even Zeus ( Starting with v0.9.0 ).

👀 Advancing step

Ideally, plan your UTXO ( unspent transaction output ) well when depositing; don't send a big chunk of sats or have too many small ones. For example, it could be 1M, 3M, or 10M for each deposit. Otherwise, it will cost too much fee or potentially bad for privacy when you are using them in the future. The solution could be to think and plan ahead how you will use these funds in the future. yes, it's not easy to be your own banker, but that responsibility comes with freedom.

Real-life samples on why UTXO planning is important

In the fiat world, if you are buying something that costs $9, logically you use either $10 or two $5 for it instead of $100, right? In the Bitcoin world, if you are buying something costing 90k sats, then you can either use one 100k sat UTXO or combine two 50k sat UTXO, and you don't want to use a 1M sat UTXO for it because it will be too much "changes" = high fee.

But as the world gradually embraces Bitcoin and people start to see the magic of Lightning, we would only use Onchain for large amount of transactions; And see the chart below to show you how the fee works under different sat/vB environments. ( ideally, the minimum of UTXO should be at least 1M sat )

( not sure where this chart was originally from, and thanks to whoever made this! )

How to create a watch-only Wallet?

Go to wallet info to get the Master Public Key, or use the QR code to scan it ( use the phone offline to scan, then later back to online would show the Watch-only Wallet ).

How to recover the fund and use it?

Generally you can restore the funds in any Bitcoin wallets, but some could be quite tricky due to the derivation path, here is a good source if you would like to learn more about it.

And to make things simple the easiest option to restore is using Electrum again: create a wallet — name it — Standard wallet —I already have a seed — enter the seed one by one, done.

For nomads or travelers

If you are traveling around like me, you might want to create a small stash for emergencies. In this case, using Blue Wallet to restore is pretty handy, you can easily restore it on your phone.

How: Open Blue wallet — click add wallet — choose Bitcoin — HD SegWit ( BIP 84 Bech32 Native ) — import wallet — enter the seeds and done.

But my favorite way to restore wallets is with Sparrow Wallet, it's a really powerful wallet. Not only do I get to choose which UTXO to spend, but controlling the fee better. Maybe I would write a more detailed article on how to restore each type of wallet with Sparrow wallet, as it solves many problems.

Extra Reminders

- Always make backups of the seeds, at least 3, and in different ways.

- Do more tests until you are comfortable with what you are doing.

It took me more than one month and many tests to know what I was doing, and I used small sats to do the tests, from start to finish — how to create  —  how to restore — how to spend, then think about each step and how can do better, and how to recover the fund when in an emergency.

- As for how to cross borders in general

Ideally, you make it in a way that only you are able to decode your seeds, even if it's in text, e.g., you can use 10 words to write a story and use your mind to remember the rest of two...or make it half in poet, another half in articles online, madness is plain sight is the way.

Freedom means self-responsibility and the fact that you can cross any border with 12 words in your mind and no one can take your money away is so empowering, and making your own cold wallet is definitely one of the highlights. ✨