From what I understand, signing a transaction offline means I don't have to ever expose my private keys to a web-connected computer. From what I've found, the only program that allows something like this with WIF keys is sx, are there any other tools that perform something like this? Or is sx the only way do accomplish this?

3 Answers 3


Armory is a popular solution for dealing with offline wallets. It is GUI based so is more user friendly than command-line / programming based solutions.


  • 1
    Would Armory be appropriate if I had one paper wallet that I wanted to reuse many times, without exposing my private keys? Commented Dec 20, 2014 at 18:35

You can do this using Bitcoin Core, and it'll be even easier with Bitcoin Core 0.10's watch-only wallet support.

With the current Bitcoin Core, you create a wallet on your offline machine. Using it, you get one or more addresses (saving them, for example, to a text file). You copy those addresses to your online computer and give them to people to pay you. When you want to spend those payments, you create the transaction on the online computer in an unsigned form, copy it to your offline computer, verify it, sign it, copy the signed transaction back to the online computer, and send it.

Core dev Greg Maxwell has instructions for all this on his site: Offline Signing Demo. There's another example aimed at developers on Bitcoin.org: Offline Signing Example.

The problem with both methods is that you need to know the TXID of any payments made to the addresses corresponding to your offline keys, and current (December 2014) versions of Bitcoin Core don't make that easy. However, the next version of Bitcoin Core (0.10.0) will include watch-only address support. So you'll take that list of addresses you generated and use the new importadddress RPC command to add them to your wallet. The private keys will still be offline, but your online Bitcoin Core will track those addresses as if they were regular parts of the wallet. Then you'll be able to use the listunspent RPC to get the TXIDs and vouts for incoming payments without any extra work.


Just discovered the android apk : bitcoin paper wallet from fireedge. I use it on an old phone which I had reset, without Google account and transfered only the 2 apk manually : bitcoin paper wallet and qrdroid for copy pasting the json utxo and transaction to sign. Wifi disabled of course. Before sending the tx, I use coinb. In on the online phone/computer to verify the target and amount.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.