I want to know because I would like to generate a vanity address at Vanity Pool.

up vote 12 down vote accepted

Install OpenSSL. When the executable in your path, enter this command to generate a private key:

openssl ecparam -genkey -name secp256k1 -noout -out myprivatekey.pem

To create the corresponding public key, do this:

openssl ec -in myprivatekey.pem -pubout -out mypubkey.pem

This will give you both keys in PEM format. I'm not sure what format the web page wants, but it shouldn't be difficult to convert. You can use variants of the last command to output other formats. Remove -pubout if you want the private key, leave it if you want the public key. And you can use -outform DER to get DER format. You can use -text to get hexadecimal.

Do not give any form of your private key to anyone else.


openssl ecparam -genkey -name secp256k1 -out tmp/data.pem

get private key:

openssl ec -in tmp/data.pem -outform DER|tail -c +8|head -c 32|xxd -p -c 32

get public key:

openssl ec -in tmp/data.pem -pubout -outform DER|tail -c 65|xxd -p -c 65
  • What are those xxd's about? – DepressedDaniel Dec 20 '16 at 3:35
  • What's the background of getting the pub/priv Bitcoin key from the ecda keypair? – soupdiver Sep 14 '17 at 17:46

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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