Build & run a full Bitcoin node with a Raspberry Pi 5

Posted on: June 2, 2025

Today I’ll show you how to build your first Bitcoin node using a Raspberry Pi 5 and several off-the-shelf parts. It’s a fun weekend hacking project and a great way to learn more about cryptocurrency, all while contributing to the decentralised network powering Bitcoin.

What’s more, we’re going to create the node to be as small and unobtrusive as possible. That means no external USB drive or monitor, just a single tiny box plugged into Ethernet and power. It’ll be low maintenance, use minimal electricity, and be configurable via web browser or SSH from your computer. I’ll also show you how to connect your Bitcoin wallet directly to your node via Electrum Server, maximising your security, independence, and privacy.

Finished Bitcoin node, built with a Raspberry PI 5.

Let’s get started!

Contents

  1. Why bother building a node?
  2. Hardware for your node
  3. Software for your node
  4. Step-by-step setup
  5. Connect your wallet
  6. Wrap-up & next steps

1. Why bother building a node?

Note: If you’re already sold on building a node, you can to jump straight to the building instructions!

I became a ‘casual enthusiast’ of Bitcoin during the first big bull market in 2017. I read Satoshi’s whitepaper, watched a few explainers on YouTube (good example below), and built up a basic understanding of how it worked. I thought it was clever, and had the potential to be transformative. I bought a small amount of Bitcoin and settled down as a long-term HODLer to watch the peaks, troughs, and wild headlines over the years.

Play

My interest in crypto nosedived around 2021, when the NFT craze was sweeping the internet. Watching people get swindled into spending millions on cartoon monkeys and shitcoins, I couldn’t help but wonder if maybe this wasn’t the future of finance after all. If DeFi and blockchains were the technologies which would save us from the crumbling fiat system, why did everything new in crypto feel so grubby and scam-like?

The collapse of FTX and Terra in 2022 did nothing to change my views, and I more-or-less forgot about crypto until last month when I read Broken Money by Lyn Alden. This is an excellent and highly accessible book, which I’d recommend to anyone with even a passing interest in financial technology and economics. The book’s latter chapters on cryptocurrency challenged many of my preconceptions, particularly around the energy costs associated with proof-of-work blockchains and Bitcoin’s role in developing or authoritarian countries.

After finishing the book (which is also available as an audiobook), I wanted to learn more. I tend to learn best by doing, so I figured building a node would be a good educational project and a step up - hardware-wise - from my trusty cold wallet.

Caveat: Building a Bitcoin node isn’t something you should do with an expectation of financial reward. With a lot of work and significant upfront capital you might make some money from running Lightning channels, sure, but in general I’d only recommend going into this project if most of the following points apply:

  1. You like building stuff and want to learn more about cryptocurrency.
  2. You want to participate in the decentralised network powering Bitcoin and help keep the currency transparent, reliable, and secure.
  3. You’ve already taken custody of your Bitcoin, having withdrawn it from centralised exchanges and moved it into a secure wallet (one where you hold the private keys).
  4. You want to maximise your privacy by creating and broadcasting transactions directly from your own node, rather than trusting third party services that might compromise your IP or wallet addresses.

What’s the difference between miners and node runners?

Good question.

A modest Bitcoin mine. I don't fancy running one of these at home.
A modest Bitcoin mine. I don't fancy running one of these at home.

To be a successful miner in 2025 requires an almost unfathomable amount of cheap energy - not to mention a lot of very specialist hardware - in order to be economically viable. Standard CPUs and GPUs simply don’t cut it anymore; modern miners typically use dedicated chips known as ASICs (Application-Specific Integrated Circuits).

To run a node, on the other hand, doesn’t require any specialist hardware. It’s possible to run a full node on a 10+ year old laptop. What’s more, using an energy-efficient computer like the Raspberry Pi means your running costs will be just a few pounds per year, even running constantly. The main requirements are (1) a fast and unlimited internet connection, (2) a bare minimum of 1TB of storage.

With that in mind, let’s choose the Node’s hardware.

2. Hardware for your node

I wanted my node to run 24/7, use minimal power, and be as small, quiet, and self-contained as possible. I didn’t want multiple boxes wired together via USB, nor did I want to use a dedicated monitor.

Having explored many different options, I can highly recommend the Raspberry Pi 5 for running a node in 2025. Obviously it’s tiny, which is ideal, and it’s more than powerful enough to run a full node. Best of all, version 5 of the Pi has a PCI Express 2.0 interface, meaning it can support an M.2 NVMe internal SSD. This eliminates the need to store the blockchain on a bulky external USB drive.

Hardware needed for your Raspberry Pi 5-based Bitcoin node.

Here’s what you’ll need:

All links above go to good independent UK sellers. There are no affiliate links.

Some important points to remember with M.2 NVMe-based builds:

All in, you’re looking at £235 in total if you buy new. If you already have a Raspberry Pi, power supply, ethernet cable, and microSD card available from a previous project (as I did), then your main expense will be the M.2 SSD at around £110, plus a case if you want a nice tidy build.

Don’t be tempted to get a 1TB SSD - you might save about £50, but your drive would be over three-quarters full on day 1, given the present size of the Bitcoin blockchain. 2TB is a future-proof option. You could also skip the case, but then your components would get dusty and - if you’re not fussed about having a small, self-contained build - you’d be better off getting a USB SSD rather than an M.2 internal SSD.

Before assembling the hardware let’s consider software options, because your decision here affects the order of the steps to take.

3. Software for your node

Broadly speaking, all node software options sit somewhere on the spectrum between plug ‘n’ play versus fully DIY. In that order, here are four good free options:

  1. UmbrelOS, is a polished, Debian-based operating system designed to turn a Raspberry Pi into a personal server. It’s not Bitcoin-specific - its app store includes a wide range of self-hosted services, from media servers to privacy tools. It’s open source and free to use, and well-suited to users who don’t feel comfortable on the terminal.
  2. MyNode installs multiple Bitcoin-related apps via a Docker container, and it makes everything accessible via a local web server or SSH. You can install it via SD card image. While many of the included packages are open source, MyNode itself is not. The GUI is good, albeit not as polished as Umbrel. There’s a free “community” edition which boasts many great features, along with a “premium” option that unlocks paid support plans and remote access via Tor.
  3. Raspiblitz is a collection of open source Bitcoin software provided via SD card image. They provide both a ‘beginners’ image, which installs many packages and assumes you’ll run an LCD screen on your node, and a ‘minimal’ version, which I prefer. This comes with only the essentials. Without a screen, access is via a (wonderfully designed!) SSH interface and - optionally - local web server.
  4. Raspibolt is a fantastic tutorial by Stadicus which uses standard Debian packages to configure a Bitcoin node entirely via command line. It’s similar to Raspiblitz in some respects, though you’re effectively doing everything yourself rather than relying on an SD card image to get you started. The main drawbacks are that it’s slightly out-of-date and is designed around the Raspberry Pi 4, meaning there’s no guidance on NVMe drives. But if you’re technically proficient enough to opt for this option, neither of those things should be a blocker.

For this build I wanted something actively-developed, Bitcoin-specific, and sufficiently DIY that I can debug it myself. My previous build used MyNode, but I found the heavy, Docker-based approach added layers of complexity on top of Debian that I struggled to work with, even with ChatGPT’s help.

For this reason, we go with Raspiblitz

The awesome Raspiblitz SSH home screen.
The awesome Raspiblitz SSH home screen.
Raspiblitz status screen, the first option in the menu above.
Raspiblitz status screen, the first option in the menu above.

A few notable features:

I find Raspiblitz - specifically the ‘lite’ version - offers the perfect balance. It’s lightweight and geared around SSH access, while also being far quicker to setup than more hardcore DIY options.

One last thing before you start: harden your security

A tip from Stadicus which I’d echo here: take this opportunity to harden your network security before you start. If you’re going to run a public Bitcoin node on your home network, then it’s prudent to ensure basic security measures are in place first. These include changing your router’s default SSID and password, updating its firmware, disabling insecure protocols like WPS and UPnP, and enabling strong encryption.

4. Step-by-step setup

Prep your microSD card

We’re going to run the Raspberry Pi Operating System off the microSD card and use the NVMe SSD to hold the blockchain data. While future versions of Raspiblitz will let you boot from NVMe and hold blockchain data in a separate partition, this isn’t in the stable release channel yet.

The microSD card won’t be easily accessible once our case is screwed together, so preparing your card should be your first step.

Download and install Etcher onto your main computer, which we’ll use to flash our MicroSD card. Next, head to the Raspiblitz downloads page and download the latest version of the ‘Minimal’ image - you don’t need the ‘Fatpack’ image. The SHA256 hashes of the images are available on that same page for you to verify against, if you wish. Connect your microSD card (via SD card slot with microSD adaptor or USB card reader as required), then start Etcher.

Balena etcher

The software’s fairly self-explanatory. Select the Raspiblitz image you downloaded, your microSD card, and then hit “Flash”. When the process is finished, remove the card and insert it into the slot on your Pi. Leave the Pi powered off for now.

Assemble your hardware

The Argon NEO 5 M.2 NVMe Case I’ve recommended includes a good set of instructions, but I’d suggest watching this YouTube video to familiarize yourself with the fiddliest parts of the process:

Play

In short, your main steps are:

  1. Connect the fan cable to your Pi’s fan port
  2. Attach the provided thermal pads to the Pi’s CPU and PMIC chips
  3. Connect the PCIe flex cable to the Pi, taking great care when releasing the cover and then when locking the cable in place
  4. Place the Pi into the top part of the case, guiding the fan wire along the inner edge - double check your SD card is inserted, too
  5. Secure the other end of the PCIe Flex Cable to the case’s NVMe Expansion Board, again taking great care with the port covers
  6. Attach the bottom part of the case to the top part, being careful not to dislodge or damage the flex cable, and secure case with 4 screws
  7. Install your M.2 NVMe drive to the bottom of the case, ensuring it is fully inserted into the slot, and secure it with the provided screw
  8. Apply the thermal pad to the NVMe drive and screw the heatsink into place
  9. Slot the top cover into place and secure with screws

The fiddliest parts of this process are securing the ribbon cables (you need to carefully release the slot cover first, then lock your cable into place) and installing the M.2 drive (it needs to be inserted at a 30-degree angle to properly engage, then pushed flat to be locked into place with the screw).

Ribbon cable from the Pi attaches to the Argon Neo 5 NVMe base board.
Ribbon cable from the Pi attaches to the Argon Neo 5 NVMe base board.
Installing the M.2 NVMe SSD into the base of the Argon Neo 5.
Installing the M.2 NVMe SSD into the base of the Argon Neo 5.
Fully assembled Raspberry Pi 5 Bitcoin node, with obligatory sticker.
Fully assembled Raspberry Pi 5 Bitcoin node, with obligatory sticker.

Find IP and connect via SSH

Time to power up! Connect your node to your router via ethernet cable, then attach the USB-C power adaptor and switch it on at the mains.

Once your Pi’s powered on, Raspiblitz will start immediately. Since we’re not running a screen with our node, we will access it via SSH and local web server. The “minimal” version of the software doesn’t enable web server by default, so first we need to figure out the IP which your router has assigned it.

Login to your router’s admin panel and find the list of Ethernet-connected devices. Alternatively, on a MacOS or Linux-based device, you can run arp -a in the terminal to see this list. Your Raspiblitz’s IP will start with 192.168..

Open a terminal on another computer connected to the same network and type:

ssh admin@[your Raspiblitz IP address]

You might be asked if you trust the device. Enter ‘yes’, then enter the default password which is raspiblitz. This will start the setup wizard.

Normally this is the point in NVMe-based Pi builds where you need to configure the bootloader to recognise your NVMe drive. But thankfully the latest Raspiblitz images include the necessary config changes in the OS, so you don’t need to do anything extra! ✨ If for whatever reason you did need to troubleshoot NVMe drive detection with the Argon NEO 5 case, this is a helpful guide.

Initial Raspiblitz setup

The setup wizard is excellent - like the menu from an old-school DOS game. Navigate with the arrow keys on your keyboard, and hit enter to make a selection.

Raspiblitz setup

The Raspiblitz documentation is good, but I’ll give a rough outline of the steps you need to take:

Raspiblitz passwords

Once that’s done, Raspiblitz will run through its install scripts and provision all the necessary services.

You’ll then be asked how you want to get your copy of the Bitcoin blockchain: SELFSYNC or COPY. Assuming this is your first Node and you don’t have a friendly neighbour who loves Bitcoin and is good with Linux, you’ll want to choose SELFSYNC. This means downloading the entire chain, which comes in at almost 800GB at time of writing. This process - referred to as Initial Block Download, or IBD - can take up to a week depending on the speed of your internet connection.

Raspiblitz blockchain sync

There’ll be one final reboot, at which point you’ll be kicked out of SSH. Log back in (using your Password A), and you’ll be presented with NODE IS SYNCING and a progress percentage. This will take days - you can exit the screen with CTRL+C, and you’ll land on the terminal. Type exit to leave SSH. Your Pi will continue run as it downloads the blockchain.

Since you’re now sat twiddling your thumbs, it’s worth considering what an incredible process this is. Your Node is fetching the entire history of the blockchain, including every Bitcoin transaction ever made, from other peers like you. Once complete, its records will go right back to 12th January 2009, the date on which Bitcoin’s creator, Satoshi Nakamoto, transferred 10 bitcoins to American cryptographer Hal Finney, completing the first ever Bitcoin transaction. Your node will check the integrity of this data, and - crucially - use it to check the validity of new transactions it receives.

Raspiblitz configuration

A few days later, once the blockchain sync is complete, you’ll see the awesome Raspiblitz homescreen when you SSH into your device:

The awesome Raspiblitz SSH home screen.

Yours will have fewer options at first - I’ve added a few extra packages to mine, some of which add options to the main menu. A guide to the Raspiblitz SSH menu is available on the official website, so for now I’ll highlight a few of the key options to be aware of:

The last thing I’ll recommend before we move on is to consult the official Raspiblitz FAQ. Here you’ll find useful guidance on things like version upgrades, router configuration, and debugging.

Congratulations! You’re now running a full Bitcoin node with a full copy of the Bitcoin blockchain, and it’s actively validating and re-broadcasting transactions on the peer-to-peer network. The final topic I’ll cover involves connecting your Bitcoin wallet to your node, enabling you to execute transactions without any reliance on a third party.

5. Connect your wallet and send some Bitcoin

Why connect your wallet to your own node?

Every time you check your wallet balance, it has to query a node to get that information. It asks the node for the balances of each of your addresses, and in so doing reveals your IP address and total Bitcoin holdings to that node. By using onion routing (i.e. Tor), you can protect your identity to a degree, but it’s still possible to link your addresses together.

When you connect your wallet to your own node, you’re instead querying your own local copy of the blockchain. There’s no need to trust any third party; your node can answer questions about transactions, addresses, and balances. What’s more, it’s possible to broadcast your own transactions without revealing anything about yourself - you relay the transaction to your node, which will mix it in with the thousands of other transactions it’s received, and then rebroadcast all of them. You can read more about the privacy benefits of being a node runner on Bitcoin.org.

To let your wallet communicate with your node, we’ll use Electrum Server, and to let you explore the blockchain securely, we’ll use Bitcoin RPC Explorer.

What is Electrum Server?

Electrum server acts as a piece of middleware to let your wallet (hot or cold) connect to your node. It effectively tracks the subset of blockchain activity which is relevant to your wallet’s addresses, and indexes them for faster querying.

Many popular wallets are compatible with Electrum server. These include hot wallets such as Electrum desktop and Sparrow, as well as the software accompanying cold wallets like Trezor Suite and BitBox App.

Under the hood, Raspiblitz is actually going to install Electrs - a fast, Rust-based re-implementation of Electrum Server that’s specifically designed for use-cases like this.

Enabling Electrum Server & RPC Explorer on Raspiblitz

Login via SSH, head to the Services screen, and hit space to enable BTC Electrum Rust Server. It should be the top option. Scroll down to BTC RPC-Explorer (the third option in my version) and enable that too. Hit OK, and wait for these packages to finish installing.

Raspiblitz additional services

Once it’s completed, don’t try to connect your wallet immediately. Electrs needs to fully index the blockchain before it’s ready, a process which can take hours or days depending on hardware. With this build, I left it running overnight and it was ready by morning. You can check its progress by opening the new ELECTRS item on your homescreen!

Once it’s done, you’ll be able to open this screen:

Raspiblitz Electrum Server

Hit CONNECT to open the instructions screen:

Raspiblitz Electrum IP

You need to make a note of the IP address, port, and protocol - I’ve circled them in orange. Note that if you’ve enabled Tor in Raspiblitz, you’ll have the option of connecting to Electrum Server via Tor. Since we’re only going to be accessing Electrum via our local network for now, you can safely use the internal ‘clearnet’ IP.

Press Enter to return to the main menu, and then open BTC RPC Explorer. You’ll see another local IP ending in port :3020, this one corresponding to the local web server which is running your blockchain explorer. Make a note of this too, and open it in your browser if you like!

Bitcoin RPC Explorer - your own copy of the blockchain, easily accessible locally via your browser.
Bitcoin RPC Explorer - your own copy of the blockchain, easily accessible locally via your browser.

With these two addresses - Electrum Server and RPC Explorer - you’re ready to connect your wallet.

Connecting your wallet

Electrum Server is a widely-used standard, and many wallets are compatible with it, but the connection process varies based on which wallet you have. I’ve collected links to the official guidance for popular options below:

For the rest of this guide, I’m going to focus on the steps for Trezor.

Why Trezor? I’m a strong advocate for Bitcoin self-custody with a hardware (cold) wallet, and in my opinion Trezor make the best all-round cold wallet, namely the Trezor Safe 3. Their open-source desktop software Trezor Suite is also a joy to use, and I’m a fan of their brand, so have decided to highlight them in this guide. This is not a paid endorsement, and there are no affiliate links on this page.

I’ll assume you have Trezor Suite up-and-running on your main computer. Note that this process is not compatible with the Trezor Suite web app - you’ll need the desktop application running on the same local network as your node. You should also disable Tor in Trezor Suite, if you’ve enabled it, because we’ll be connecting to our node via a regular connection, as I mentioned previously.

Head to Settings > Coins, and hit the cog next to Bitcoin.

Trezor Settings - Coins view

This opens the Bitcoin Backends configuration. By default, Trezor Suite connects to the network using Trezor Blockbook, but it’s trivial to configure the software to instead connect to your Electrum server.

Trezor Bitcoin backends

Open the drop-down, and change it from “Trezor servers (default)” to “Custom Electrum server”. The address field expects a string following the format address:port:protocol, which is exactly how Electrs on Raspiblitz provided it for us.

Trezor Bitcoin custom backends

Don’t close the window just yet; scroll down to Explorer. While you’re here, you may as well tell Trezor Suite to use your own node for blockchain exploration, too! Change the “Root URL” to the BTC RPC Explorer URL you noted down earlier (the one ending in :3020). There’s no need to change the paths - these are the same as Trezor’s defaults (tx, address, etc).

Trezor custom explorer

Hit “Confirm”, and wait for Trezor to connect to your Electrum server. You’ll know it’s succeeded when the Bitcoin Backends view (accessible via the database icon in the bottom left) shows a green light next to your URL.

Trezor custom backend successfully setup

You’re done!

Your Bitcoin wallet’s software is connected to your own sovereign node. You’re able to securely send and verify transactions, and explore the blockchain, without trusting any third party or revealing anything about yourself. More than that, you’re also taking a more active role in the evolution and direction of the Bitcoin project.

6. Wrap-up & next steps

One of the cool things about this project is its extensibility. You’re running a full sovereign Bitcoin node and have connected your wallet to it, greatly enhancing the security and privacy of your transactions, but there are dozens more avenues to explore:

I hope this guide has been useful. If you have any feedback or suggestions, you can email me at tom@bennet.org. I enjoyed this project, and if others do too, I will write more Bitcoin tutorials.

Thanks for reading! And remember: not your keys, not your coins.

Back to top.