A Windows desktop tool for generating and manipulating Bitcoin keys and addresses — paper wallets, BIP38-encrypted keys, Casascius mini private keys, M-of-N split keys, and escrow codes. Originally by Mike Caldwell (Casascius).
Security: this app generates and handles private keys. Run it offline / air-gapped. Verify your download (below) before trusting it with key material.
License: GPLv3.
- .NET 10, WPF, x64. No cross-platform support.
- Dependencies restore automatically from NuGet
(
BouncyCastle.Cryptography,QRCoder) — no manual DLLs required.
dotnet build BtcAddress.csproj -c ReleaseProduce a single-file, self-contained exe (bundles the .NET runtime; runs on a clean Windows with nothing installed):
dotnet publish BtcAddress.csproj -r win-x64 -c Release -p:PublishSingleFile=true --self-contained trueOutput: bin\Release\net10.0-windows\win-x64\publish\BtcAddress.exe.
Releases are signed with a GnuPG detached signature. Each BtcAddress.exe
ships with a BtcAddress.exe.asc next to it. Verify before running:
# 1. Get the signing public key (once)
gpg --recv-keys 6B6BC26599EC24EF7E29A405EAF050539D0B2925
# 2. Verify the exe against its signature
gpg --verify BtcAddress.exe.asc BtcAddress.exe
A good result shows:
gpg: Good signature from "odolvlobo <odolvlobo@bitcointalk.com>"
The signing key fingerprint is:
6B6BC26599EC24EF7E29A405EAF050539D0B2925
Confirm that full fingerprint from a trusted source — a short key id can be
forged. If gpg --verify reports anything other than a good signature with this
fingerprint, do not run the binary.
This is an OpenPGP signature, not Windows Authenticode, so Windows may still show an "unknown publisher" prompt — that is expected. Signing details and the maintainer workflow are in SIGNING.md.
Crypto output is checked against published known-answer vectors (private key
0x01, BIP38 spec vectors, mini key, Base58Check, M-of-N, escrow). See
test/golden-vectors.md. The harness is an xUnit project;
run the full test suite (unit tests + golden vectors) with:
dotnet test BtcAddress.sln