How can I export the private key for an address from the satoshi client?

39

12

If I want to transfer an address from the satoshi client into a different client, how can I find its private key to do so?

Chris Moore

Posted 2012-07-18T22:49:26.833

Reputation: 13 952

Related question, if you don't know the address, how to export all: http://bitcoin.stackexchange.com/questions/4632

Stephen Gornick 2012-09-30T01:06:12.623

Answers

14

Note: Recent versions of the satoshi client offer a 'debug window' which can be used to export private keys. This is described in Miguel Moreno's answer to this question, and is easier than the steps I describe below.

To export a private key from your satoshi client:

  1. run: bitcoin-qt -server and wait for it to load the blockchain and start up

  2. if your wallet is encrypted, run: read -s x; bitcoin-cli walletpassphrase "$x" 600; unset x to unlock it for 600 seconds (type your passphrase after hitting return, then hit return again; this 'read; ...; unset' prevents the password being written to your shell's history file on disk, and the '-s' in read prevents your password being displayed as you type it, and improves protection from screen-loggers and the shell log)

  3. run this command using bitcoin-cli: bitcoin-cli dumpprivkey 1my1bitcoin1addres11111 (replace 1my... with the bitcoin address of which you want the private key)

  4. if your wallet is encrypted and you want to re-lock your wallet, run bitcoin-cli walletlock

Chris Moore

Posted 2012-07-18T22:49:26.833

Reputation: 13 952

How to dump all private keys at once?opengrid 2013-12-12T18:36:43.187

What if I've encrypted my wallet?Stephen Gornick 2012-07-19T14:41:57.663

Good point. I updated my answer to mention that.Chris Moore 2012-07-19T18:02:07.243

I guess you do the "read x ..." shell stuff to prevent the shell writing your password to a history file. I think that's worth mentioning.Jürgen Strobel 2012-09-15T12:37:09.577

Yes, that's exactly why. I don't want my password being written to disk.Chris Moore 2012-09-16T03:26:25.193

@opengrid - I had same question because I'm worried about change address. How do I know all the addresses in a wallet?Sun 2017-12-12T17:41:12.363

@Sun You can use bitcoind listaddressgroupings to get all addresses.user2428118 2018-01-22T23:40:14.103

1@user2428118 I noticed dumpwallet is a command now in newer versionsSun 2018-01-23T16:18:48.810

It is perhaps a bit safer to use read -i x instead.user1747134 2018-07-03T20:16:58.267

42

To export a private key from your Satoshi bitcoin-qt client:

  1. launch your bitcoin client as usual and wait for it to load the blockchain and start up
  2. click on 'help' in the menu bar (top right)
  3. click on 'debug window'
  4. select the 'console' tab
  5. type: walletpassphrase "your walletpassphrase here" 600
  6. type: dumpprivkey [your Bitcoin address here]
  7. this will return the private key, you can copy it now; ensure you clear your clipboard/history afterwards
  8. type: walletlock

bitcoinero

Posted 2012-07-18T22:49:26.833

Reputation: 546

1This answer would benefit from adding "How to get your public key"; as i don't know my public key.Ian Boyd 2013-04-08T01:48:16.553

The Bitcoin address is what is to be used there. I've edited it.Stephen Gornick 2015-10-11T03:19:45.300

FYI, if you didn't already encrypt the Bitcoin-QT wallet then skip the walletpassphrase part (line numbered 5. and 8.).Stephen Gornick 2015-10-11T03:21:43.347

>5 isnt clear :it tells you to type quote:"walletpassphrase "your walletpassphrase here" 600". unquote which gets you no where.. and number 6 is the same<David Crawford 2017-08-11T22:02:31.490

1@DavidCrawford: Did you try to replace the three words "your walletpassphrase here" with your wallet passphrase?Murch 2017-08-12T02:31:11.153

@IanBoyd Your addresses are your public keys. View them under the receive tab.deed02392 2017-12-24T02:24:57.053