100% self-sovereign Bitcoin with Umbrel, Bitcoin Core, and Electrs
How to fight back against the FBI's "Alert on Cryptocurrency Money Services Businesses" by running your own Bitcoin infrastructure
Bitcoin is under attack from the U.S. government. This week the FBI arrested the creators of Samourai Wallet for writing software that enables private Bitcoin transactions, then warned the public against “non KYC money transmitters.” In response, many Bitcoin wallet makers have decided to withdraw from U.S. app stores, and it’s quite possible that all Bitcoin infrastructure could be labeled an “unlicensed money transmitter” — even if it never custodies your Bitcoin.
This is bad news for Bitcoin users who demand financial privacy and self-sovereignty. If you are wondering why the government is doing this, I recommend the excellent video Shut The Exits, Boil The Frogs (It's Happening Now).
What can you do? Besides getting your passport in order, I recommend learning to use fully-self sovereign Bitcoin custody tools.
This means:
Get your Bitcoin off exchanges and out of Bitcoin ETFs and into your self-custody wallet
Learn how to use a hardware wallet and move your Bitcoin to it
Run your own Bitcoin node
Below, I will detail how to quickly set up your own Bitcoin node infrastructure to use with your hardware wallet.
A quick guide to running Umbrel on Windows so you can run Bitcoin Core, Electrs, and mempool.space locally.
Why? Electrs is an implementation of the Electrum Server protocol. Running a Bitcoin Node + Electrs allows you to achieve 100% self-sovereign Bitcoin operations.
This process is not required for most people, and you should definately start by moving your Bitcoin to a hardware wallet. However, using these tools ensures that you don't rely on any single point of failure for Bitcoin operations.
Why not just run Bitcoin Core? You can, but if you want to use a hardware wallet like a Trezor, Coldcard, or Ledger, you need to use a client app like Electrum, which supports many Bitcoin hardware wallets. I do not recommend using Bitcoin Core for Bitcoin custody on its own.
Umbrel is one of several “privacy in a box” solutions. They sell a pre-configured device, but you can run your own version with the free UmbrelOS.
Umbrel has easy installers for many other Bitcoin tools like BTCPay Server for accepting Bitcoin payments, and several Bitcoin Lightning node implementations. I’ll probably write about them in the future once I figure them out for myself.
Here's what I did:
Install WSL (Windows Subsystem for Linux). It's built into Windows: Start → "Turn Windows features on or off".
Install Ubuntu from the Microsoft Store. (Run
wsl --install
in PowerShell). This will create an Ubuntu environment within WSL.Download the Umbrel installation script by running:
curl -L https://umbrel.sh | bash
Follow the on-screen instructions to complete the Umbrel installation.
Once the installation is complete, access the Umbrel dashboard by opening a web browser and navigating to http://localhost:8080
In the GUI, install Bitcoin Core, and Electrs.
Configure your hardware wallet to connect to your local Electrs server. In the Electrum app, go to Tools → Network → Server and enter
localhost
as the server address and50002
as the port.
You can now use your hardware wallet with Electrum, connected to your own locally running Bitcoin node and Electrs server.
Note: Running a full Bitcoin node requires a significant amount of disk space (over 500 GB as of April 2024) and bandwidth. Ensure your system meets the requirements before proceeding with the installation.
With this setup, you have a self-sovereign Bitcoin environment, providing enhanced privacy and security for your Bitcoin transactions.
Advanced:
If you encounter errors, run
./scripts/start
and check the output. If apps fail to install in the GUI, install via:sudo ./app install electrs
.To change the port number, edit
NGINX_PORT=<port>
in~/umbrel/.env
.If you already have a full Bitcoin Core node you want to use, navigate to
\\wsl.localhost\Ubuntu\home\<username>\umbrel\app-data\bitcoin\docker-compose.yml
and replace:
- "${APP_BITCOIN_DATA_DIR}:/data/.bitcoin"
with:
- "/mnt/d/BitcoinData:/data/.bitcoin" # e.g., D:\BitcoinData
Then, navigate to \\wsl.localhost\Ubuntu\home\<username>\umbrel\app-data\electrs
and replace:
- "${APP_BITCOIN_DATA_DIR}:/data/.bitcoin:ro"
with:
- "/mnt/d/BitcoinData:/data/.bitcoin:ro"
Finally, restart the apps: ~/umbrel/scripts/app [stop/start] bitcoin electrs
.
After downloading the Umbrel installation script (curl -L https://umbrel.sh | bash) it had me sign out and back in and now I'm not sure what to do. The same command says that the files are already downloaded but I'm not able to view anything in the browser.