Build Your Own SeedSigner: The Complete DIY Tutorial for an Open Source Hardware Wallet
Table of Contents
- Introduction
- What Is a SeedSigner?
- Materials List
- SD Card Preparation
- Physical Assembly
- First Use
- Using with Sparrow Wallet
- Security Best Practices
- FAQ and Troubleshooting
- Comparison Table: SeedSigner vs Commercial Hardware Wallets
- Conclusion and Recommendations
- Internal Links
- Sources and Resources
Suggested URL: /security/seedsigner-diy-complete-tutorial-open-source-hardware-wallet
Category: Technical Security Tutorials
Summary: Comprehensive guide to assembling and using a SeedSigner, the DIY air-gapped hardware wallet that delivers maximum security for under 50 EUR, with zero dependency on a commercial supply chain.
Introduction
Build your own hardware wallet for 50 EUR and eliminate all supply chain dependency
In an ecosystem where every commercial hardware wallet represents a point of trust in a manufacturer, a logistics chain, and proprietary code, the SeedSigner emerges as a radical alternative: a Bitcoin signing device you assemble yourself, where every component can be verified and the source code is fully auditable.
The concept is simple but powerful: take standard computing components, available from multiple vendors, and transform them into an air-gapped signing device capable of managing your Bitcoin keys securely. For under 50 EUR, you get a level of security comparable to -- or even exceeding -- devices sold for several hundred euros.
But the SeedSigner is not a conventional hardware wallet. It is a pure signing device: it generates seeds, displays QR codes, and signs transactions, but it stores nothing permanently. Each use requires reimporting your seed phrase. This apparent limitation becomes a strength: if the device is seized or compromised, it contains no sensitive information.
This tutorial will guide you step by step through the complete assembly of a SeedSigner, from purchasing the components to signing your first transaction. No special technical skills are required -- just patience and attention to detail.
1. What Is a SeedSigner?
Discover the stateless device that never stores any key permanently
1.1 A DIY air-gapped hardware wallet
The SeedSigner is an open source project created by cypherpunks determined to eliminate all dependency on commercial hardware wallet manufacturers. The concept rests on three pillars:
Air-gapped by design: The SeedSigner has no connectivity whatsoever -- no WiFi, no Bluetooth, no USB port used for data. All communication is done via QR codes scanned by a built-in camera, making any data exfiltration over the network impossible.
Stateless: Unlike a Ledger or a Coldcard that store your seed in a secure chip, the SeedSigner retains nothing in permanent memory. When you power it off, everything vanishes. Your seed phrase must be reimported at each use -- which eliminates the risk that a seized device could reveal your keys.
Fully open source: The SeedSigner code is available on GitHub, auditable by anyone. The hardware components are off-the-shelf consumer products whose specifications are public. Nothing is proprietary, nothing is opaque.
1.2 Advantages and philosophy
| Advantage | Explanation |
|---|---|
| No supply chain | Components come from multiple generic suppliers, not a single manufacturer that could be compromised |
| Verifiable | Every line of code can be audited, unlike proprietary firmwares |
| Minimal cost | ~40-50 EUR vs 150-300 EUR for commercial alternatives |
| Bitcoin-only | Design optimized for a single mission, reducing the attack surface |
| Easy destruction | If needed, the device can be destroyed or wiped without loss (the seed is stored elsewhere) |
1.3 Limitations and considerations
The SeedSigner has limitations that must be understood before getting started:
No permanent storage: This is a security strength but a usage constraint. You must have access to your seed phrase (engraved on metal or written on paper) at every use.
Bitcoin only: The SeedSigner handles only Bitcoin. No Ethereum, no other altcoins. This is a deliberate choice that simplifies the code and strengthens security.
User responsibility: You alone are responsible for the quality of the assembly, the firmware verification, and the security of your seed. No customer support, no commercial warranty.
Small screen: The interface runs on a 1.3" screen, which may be uncomfortable for some users. Navigation uses a joystick and three buttons.
2. Materials List
Gather the generic components needed for under 50 EUR
2.1 Essential components
To build your SeedSigner, you will need the following components:
| Component | Specification | Estimated Price |
|---|---|---|
| Raspberry Pi Zero 1.3 | Version 1.3 WITHOUT WiFi (not the Zero W or Zero 2 W) | 15-20 EUR |
| Waveshare 1.3" LCD Screen | 240x240 pixels, SPI interface, Raspberry Pi compatible | 12-18 EUR |
| Camera module | Raspberry Pi Camera Module v1 or v2 (or compatible) | 8-15 EUR |
| MicroSD card | 8 GB minimum (16 GB recommended) | 5-8 EUR |
| Camera ribbon cable | Flex ribbon for Raspberry Pi Zero (shorter than the standard one) | 2-3 EUR |
Estimated total: 42-64 EUR
2.2 Optional components
| Component | Purpose | Price |
|---|---|---|
| 3D printed case | Protection and ergonomics (STL files available on GitHub) | 10-20 EUR (printing service) |
| LiPo battery + charge module | Portable use without a power source | 10-15 EUR |
| Micro-USB cable | For power supply only | 3-5 EUR |
2.3 Critical points of attention
WARNING: It is imperative to use a Raspberry Pi Zero version 1.3 without WiFi. The Zero W, Zero 2 W, or any model with wireless connectivity must be avoided entirely. The presence of WiFi/Bluetooth would compromise the air-gapped nature of the device.
How to identify the correct model?
- Raspberry Pi Zero 1.3: no visible antenna, "v1.3" marking on the board
- To avoid: Zero W (visible metal antenna), Zero 2 W (newer, with antenna)
Sourcing:
- Kubii (France): Official Raspberry Pi distributor
- The Pi Hut (UK): Large stock, European shipping
- Amazon: Carefully verify the exact model
- AliExpress: Cheaper components but longer delivery times
3. SD Card Preparation
Download and verify the open source firmware before flashing
3.1 Download the official image
The SeedSigner firmware image is available from the official GitHub repository:
https://github.com/SeedSigner/seedsigner/releases
Download the .img file corresponding to the latest stable release. At the time of writing, the latest version is 0.8.x.
The repository also contains:
- The GPG signature file (
.sig) - The developers' public key
- SHA256 hashes for verification
3.2 Verify the firmware authenticity
This step is crucial -- it guarantees that the firmware has not been tampered with.
Step 1: Import the developers' GPG key
gpg --keyserver keyserver.ubuntu.com --recv-keys [PUBLIC_KEY]
You will find the key identifier on the project's GitHub page.
Step 2: Verify the signature
gpg --verify seedsigner_[version].img.sig seedsigner_[version].img
The result must display "Good signature" and match the identity of the known developers.
Step 3: Verify the SHA256 hash
sha256sum seedsigner_[version].img
Compare the result with the hash published on GitHub. They must be identical.
WARNING: If the verification fails, do not flash the image. Re-download it from an official source and start over.
3.3 Flash the SD card
Several tools can be used to write the image to the MicroSD card:
Option A: Balena Etcher (recommended for beginners)
- Download Balena Etcher from balena.io/etcher
- Insert the MicroSD card into your computer
- Select the downloaded
.imgfile - Select the SD card as the target
- Click "Flash" and wait for completion
Option B: Command line (Linux/macOS)
# Identify the device (be careful not to wipe the wrong disk!)
sudo fdisk -l # Linux
diskutil list # macOS
# Flash the image (replace /dev/sdX with your device)
sudo dd if=seedsigner_[version].img of=/dev/sdX bs=4M status=progress
sudo sync
WARNING: The
ddcommand can irreversibly erase your data if you select the wrong device. Triple-check before executing.
3.4 Alternative: Compile from source
For advanced users, compiling the firmware from source provides an additional guarantee:
git clone https://github.com/SeedSigner/seedsigner.git
cd seedsigner
# Follow the compilation instructions in the README
This method allows you to verify exactly what will be running on your device.
4. Physical Assembly
Connect the screen and camera with precision to avoid any short circuit
4.1 Connection overview
The SeedSigner consists of three main elements connected to the Raspberry Pi Zero:
- The LCD screen (connected to the GPIO header)
- The camera (connected to the CSI port)
- The SD card (inserted into the dedicated slot)
4.2 Screen connection
The Waveshare 1.3" screen connects directly to the GPIO pins of the Raspberry Pi Zero.
Procedure:
-
Identify the pins: The screen must be positioned so that its pins align with the Pi's GPIO, starting from the corner where GPIO pin 1 is located (marked on the board).
-
Align carefully: Without forcing, position the screen so that all pins enter the corresponding holes.
-
Press down gradually: Push gently but firmly until the screen is securely in place. The pins must be fully inserted.
WARNING: Incorrect alignment can damage the components or create a short circuit. If insertion meets abnormal resistance, check the alignment.
4.3 Camera connection
The camera module connects via a flexible ribbon cable to the CSI port of the Raspberry Pi Zero.
Procedure:
-
Open the connector: The Pi Zero's CSI port has a small plastic latch. Lift it gently with a fingernail or a thin tool.
-
Insert the ribbon: The conductive side (metal contacts) must face the board. Insert the ribbon all the way into the connector.
-
Lock it: Close the latch by pressing it down. The ribbon must be firmly held in place.
-
Camera side: Repeat the procedure to connect the other end of the ribbon to the camera module.
Verification: The ribbon must not be twisted or bent at a sharp angle. A poorly made connection will manifest as the camera not being detected at boot.
4.4 SD card insertion
- The image must have been flashed beforehand
- Insert the card into the MicroSD slot of the Pi Zero (the slot is on the edge opposite the GPIO)
- The card should "click" slightly into position
4.5 Pre-power verification checklist
Before connecting the power supply, verify:
| Checkpoint | Verification |
|---|---|
| Screen | All pins are inserted, no pin sticking out |
| Camera | Ribbon firmly seated on both sides, latch closed |
| SD card | Fully inserted into the slot |
| Visual inspection | No displaced components, no loose wires |
4.6 Case (optional)
STL files for 3D printing are available on the project's GitHub. You can:
- Print them yourself if you have access to a 3D printer
- Use an online printing service (3D Hubs, Sculpteo, etc.)
- Find a local fablab
The case protects the components and improves ergonomics during use.
5. First Use
Generate your seed with visual entropy or dice for maximum transparency
5.1 Initial boot
-
Connect the power: Use a micro-USB cable connected to a power source (phone charger, power bank). The port used is the one labeled "PWR" (not "USB").
-
Wait for boot: The screen first displays a logo, then the main menu after a few seconds of loading.
-
Camera check: If the camera is not detected, an error message is displayed. Power off, check the ribbon connection, and restart.
5.2 Interface navigation
The SeedSigner uses a joystick and three buttons for navigation:
| Control | Function |
|---|---|
| Joystick | Navigate up/down/left/right through menus |
| Button 1 | Select / Confirm |
| Button 2 | Back / Cancel |
| Button 3 | Context options |
5.3 Generating a new seed
The SeedSigner offers several methods to generate a seed phrase:
Method 1: Visual entropy (camera)
This is the SeedSigner's most original method. The device uses the camera to capture visual entropy (digital noise, light variations).
- Select "New Seed" from the menu
- Choose "Camera Entropy"
- Point the camera at a visually "chaotic" scene (foliage, clouds, textured surface)
- The device captures several images and extracts entropy from them
- A 12 or 24-word seed phrase is generated
Tip: To maximize entropy, move the device slightly during capture and aim at a scene with lots of detail.
Method 2: Dice rolls (recommended for purists)
This method is the most transparent: you generate the entropy yourself with physical dice.
- Select "New Seed" -> "Dice Entropy"
- Roll a 6-sided die and enter each result
- Repeat 50 times for a 12-word seed, or 99 times for 24 words
- The SeedSigner converts these rolls into a seed phrase
Why is this method excellent? You can independently verify the conversion using standard BIP-39 tools. No trust in the device's random number generator is required.
Method 3: Import an existing seed
If you already have a seed phrase (from another wallet or a backup):
- Select "Enter Seed"
- Type each word using the built-in keyboard
- Confirm after the 12th or 24th word
5.4 Backing up the seed phrase
Once the seed is generated, back it up immediately and permanently:
| Medium | Advantages | Disadvantages |
|---|---|---|
| Metal plate | Resistant to fire, water, time | Cost (~30-50 EUR) |
| Paper | Simple, immediate | Vulnerable to fire, water, degradation |
| Cryptosteel capsule | Maximum protection | High price (~100 EUR+) |
CRITICAL REMINDER: The SeedSigner stores nothing! When you power it off, the seed vanishes. If you lose your physical backup, your bitcoins are permanently lost.
5.5 Exporting the public key
To use the SeedSigner with a software wallet, you need to export your wallet information:
- After entering your seed, select "Export Xpub"
- Choose the format (Single Sig / Multisig)
- Choose the script type (Native SegWit recommended)
- A QR code is displayed on screen
- Scan this QR code with your software wallet (Sparrow, BlueWallet, etc.)
6. Using with Sparrow Wallet
Master the air-gapped QR code workflow for your transactions
6.1 Why Sparrow Wallet?
Sparrow Wallet is the ideal companion for the SeedSigner for several reasons:
- Open source: Auditable code, no proprietary component
- Native air-gapped support: Designed to work with QR codes
- Full control: Connection to your own Bitcoin node is possible
- Complete interface: Advanced UTXO management, coin control, labels
6.2 Initial setup
Step 1: Install Sparrow Wallet
Download Sparrow from sparrowwallet.com and verify the GPG signature.
Step 2: Create a new wallet in Sparrow
- File -> New Wallet
- Name your wallet
- Under "Keystores", select "Air-gapped Hardware Wallet"
- Choose "SeedSigner" from the list
Step 3: Scan the xpub QR code
- On the SeedSigner: enter your seed and export the xpub
- In Sparrow: click "Scan" and present the SeedSigner's QR code to your computer's webcam
- Your wallet information is imported
Step 4: Finalize
- Verify that the first displayed addresses match
- Apply the changes
- Your wallet is ready to receive funds
6.3 Receiving bitcoins
- In Sparrow, go to the "Receive" tab
- An address and QR code are displayed
- Optionally verify this address on the SeedSigner (for the extra cautious)
- Send funds to this address
6.4 Sending bitcoins (complete PSBT workflow)
This is where the SeedSigner demonstrates its full power. The workflow uses PSBTs (Partially Signed Bitcoin Transactions):
Step 1: Create the transaction in Sparrow
- "Send" tab
- Enter the destination address and amount
- Adjust the fees if needed
- Click "Create Transaction"
Step 2: Export to the SeedSigner
- In Sparrow, click "Show QR"
- An animated QR code is displayed (the data is too large for a single QR)
- On the SeedSigner: select "Scan QR" -> "Sign Transaction"
- Scan the animated QR code by holding the camera facing the screen
Step 3: Verify and sign
On the SeedSigner:
- Verify the destination address
- Verify the amount being sent
- Verify the fees
- Confirm the signature
A signed transaction QR code is displayed.
Step 4: Broadcast the transaction
- In Sparrow, click "Scan QR"
- Scan the QR code displayed on the SeedSigner
- Click "Broadcast Transaction"
- The transaction is sent to the Bitcoin network
The complete flow illustrated:
[Sparrow] [SeedSigner]
| |
| 1. Create PSBT |
| |
| 2. Animated QR -> |
| | 3. Verify
| | 4. Sign
| <- Signed QR |
| |
| 5. Broadcast |
| |
At no point do the private keys leave the SeedSigner. Only the signed transactions are exported.
7. Security Best Practices
Maintain the total isolation that gives this device its full value
7.1 Golden rule: never connect to the Internet
The SeedSigner is designed to operate in complete isolation:
- Never WiFi: This is why we use the Pi Zero 1.3 (without WiFi)
- Never USB data connection: The USB port is used for power only
- Never OTA flashing: Updates are done by reflashing the SD card
7.2 Firmware updates
To update to a new version:
- Download the new image from GitHub
- Verify the GPG signature
- Flash a new SD card (or erase and reflash the existing one)
- Test with a test seed before real use
Tip: Keep an SD card with the previous version, in case a new version has bugs.
7.3 Storage and handling
| Risk | Mitigation |
|---|---|
| Physical theft | The SeedSigner alone is useless (no seed stored) |
| Damage | Protective case recommended |
| Firmware compromise | Periodically reflash from a verified source |
| Defective parts | Keep spare components (SD, Pi) |
7.4 Periodic verification
Even if you do not use your SeedSigner often, test it regularly:
- Power on and verify functionality
- Import your seed and verify that a known address can be generated
- Test a signature on a transaction (you can cancel before broadcast)
8. FAQ and Troubleshooting
Solve common problems and clear your remaining doubts
Frequently asked questions
Q1: Can the SeedSigner be "hacked"?
The SeedSigner's security model relies on physical isolation (air-gap). Without a network connection and without key storage, the classic attack vectors are inoperative. The main risks are:
- Compromised firmware -> Always verify GPG signatures
- Supply chain -> Purchase components from multiple vendors
- Physical compromise -> The SeedSigner stores nothing; a seizure reveals no keys
Q2: Can I use the SeedSigner for other cryptocurrencies?
No. The SeedSigner is Bitcoin-only by design. This specialization reduces code complexity and therefore the attack surface. For other assets, use dedicated solutions.
Q3: What happens if I lose my SeedSigner?
Nothing serious! Your seed phrase is stored elsewhere (metal plate, paper). You can:
- Build a new SeedSigner with fresh components
- Import your seed into another BIP-39 compatible hardware wallet
- Restore in a software wallet (less secure)
Q4: Does the SeedSigner support passphrases (25th word)?
Yes. When importing the seed, you can add an optional passphrase. This generates a completely different wallet, adding an extra layer of protection.
Q5: Can I use the SeedSigner in a multisig setup?
Absolutely. The SeedSigner is an excellent candidate for a 2-of-3 multisig configuration, where it can serve as one of the signers alongside a Coldcard and a Trezor, for example. See our Multisig 2-of-3 Tutorial for details.
Common problems and solutions
Problem: The screen stays black at boot
Solutions:
- Check the power supply (cable, adapter, PWR port)
- Reseat the screen on the GPIO pins
- Try a different power source (min. 5V 1A)
- Verify that the SD card is correctly inserted and flashed
Problem: The camera is not detected
Solutions:
- Check the ribbon connection (Pi side and camera side)
- Make sure the connector latch is properly closed
- The conductive side of the ribbon must face the board
- Try with a different ribbon cable (fragile component)
Problem: QR codes won't scan
Solutions:
- Ensure good lighting (no backlight)
- Adjust the distance between the camera and the screen
- Clean the camera lens
- For animated QR codes, hold a steady position
Problem: Error when importing the seed
Solutions:
- Check the exact spelling of the words (BIP-39 word list)
- Watch out for similar words (e.g., "abandon" vs "about")
- Count the number of words (12 or 24, no in-between)
- Try the full keyboard if prediction does not find the word
Comparison Table: SeedSigner vs Commercial Hardware Wallets
Compare the SeedSigner to commercial solutions to inform your choice
| Criterion | SeedSigner | Coldcard | Ledger | Trezor |
|---|---|---|---|---|
| Price | ~50 EUR | ~150 EUR | ~80-150 EUR | ~70-220 EUR |
| Open source | 100% | Partial | No | Partial |
| Supply chain | Generic components | Single manufacturer | Single manufacturer | Single manufacturer |
| Air-gapped | Yes (native) | Yes (option) | No | No |
| Seed storage | No (stateless) | Yes (secure element) | Yes (secure element) | Yes (on device) |
| Multi-crypto | Bitcoin only | Bitcoin only | Multi | Multi |
| Ease of use | Medium | Medium | High | High |
Conclusion and Recommendations
DIY becomes self-evident when you want to depend on no manufacturer
The SeedSigner represents a radically different approach to Bitcoin security. By eliminating key storage and all connectivity, it provides security based on physical isolation rather than trust in a manufacturer.
Who is the SeedSigner suited for?
- Users who want zero dependency on any supply chain
- Technicians who want to understand and verify every component
- Multisig configurations where it can serve as a complementary signer
- Advanced users who accept the constraint of reimporting the seed
Key points to remember:
- Use only a Raspberry Pi Zero 1.3 without WiFi
- Always verify the GPG signature of the firmware
- Back up your seed on a durable medium (metal recommended)
- The SeedSigner stores nothing -- this is a strength, not a weakness
- Practice the PSBT workflow before using it with real funds
Internal Links
Continue your Bitcoin security learning with these complementary guides
- Coldcard Air-Gapped Guide -- Configuring another air-gapped hardware wallet
- Multisig 2-of-3 Tutorial -- Maximum security with multiple signers
- Verify Your Hardware Wallet Firmware -- Verification best practices
- The Passphrase (25th Word) -- Additional layer of protection
- Travel Rule and Crypto Transfers -- Why self-custody is becoming essential
Related Articles -- Technical Security
- Multisig 2-of-3 Bitcoin Tutorial
- Verify Hardware Wallet Firmware
- Passphrase 25th Word Bitcoin
- Coldcard Air-Gapped Bitcoin Guide
Sources and Resources
Official documentation
- GitHub SeedSigner: github.com/SeedSigner/seedsigner
- Documentation: seedsigner.com/docs
- Case STL files: github.com/SeedSigner/seedsigner/tree/main/enclosures
Complementary resources
- Sparrow Wallet: sparrowwallet.com/docs
- BIP-39 Specification: github.com/bitcoin/bips/blob/master/bip-0039.mediawiki
- GPG Verification Guide: gnupg.org/documentation
Community
- Twitter/X SeedSigner: @SeedSigner
- Reddit: r/seedsigner
- Telegram: Community support groups
Article written in December 2025. Component prices and availability may vary. Always verify information from official sources before purchasing or assembling.