Hi everyone,
I've been working on SignerOS, an open-source operating system designed specifically for offline Bitcoin wallet creation and transaction signing.
The idea is simple: turn an ordinary personal computer into a Bitcoin signing device.
You don't need to buy dedicated hardware. You can boot SignerOS from a USB drive and use an existing computer as an air-gapped Bitcoin wallet.
SignerOS is not a general-purpose operating system. It is a small, purpose-built, embedded-like OS that tries to do as little as possible.
Current features:- Bitcoin-only
- No Wi-Fi or Ethernet drivers
- No network stack
- No hard-disk access
- Stateless
- Minimal Linux kernel
- Buildroot based
- Single Qt application
- Wallet creation
- XPUB generation
- PSBT import, signing and export
- Live USB boot
Why use a PC instead of a hardware wallet?I don't see SignerOS as a replacement for hardware wallets.
It can also be used together with a hardware wallet as part of a multisig setup.
For example, you could have:
2-of-3 Multisig
PC with SignerOS
+
PC with TailOS
+
Hardware Wallet
This also gives you another independent signing device without requiring another dedicated hardware wallet.
Not every wallet needs to be long-term cold storage. Another use case I'm interested in is short-term wallets.
For example, you may want to create a wallet for:
- giving someone Bitcoin as a gift
- temporarily holding some BTC
- a specific project or event
- a small amount that you don't want to keep in your everyday hot wallet
For these situations, buying a hardware wallet may not make much sense but if you don't want to use a hot wallet, you could boot SignerOS on a computer you already own, create a wallet offline, and use it without ever connecting the machine to the Internet.
The goal is not to claim that this is automatically safer than every hardware wallet. The idea is simply to provide a middle ground between an online hot wallet and a dedicated hardware wallet.
Why not just use a normal Linux distribution?You certainly can.
But I wanted to try a different approach:
If a computer is only going to sign Bitcoin transactions, why should it have networking support at all?
SignerOS starts from a minimal Linux system and adds only what is needed for its purpose.
The project is still WIP. There is a lot of work remaining around security review, entropy, usability, hardware compatibility and reproducible builds.
I'm publishing it because I'd like to get feedback from people who are interested in Bitcoin security, air-gapped systems and self-custody.
Website:
https://signeros.orgGitHub:
https://github.com/SignerOSI'd especially appreciate criticism of the security model and ideas about things I may have overlooked.
Thanks!