It's pretty clear how signing a message with a Bitcoin key can be useful in proving ownership of funds.

However, it's far from clear how encrypting a message with a Bitcoin key can do anything useful. This feature is available from Tools/Encrypt/decrypt message, and appears to use ECIES or some variant of it:


It seems that at least one developer is doubtful about the security of such schemes:


Security aside, what practical reason would anyone have to encrypt a message with a Bitcoin key?

3 Answers 3


Presumably, using a bitcoin public key you could encrypt a message, and only the person who controlled a private key associated with that bitcoin address would be able to read the message.

It's really a question whether you have confidential/private/secret information that you wish to share.

If you're looking for an hypothetical use case, imagine you paid your doctor in cryptocurrency for an embarrassing medical test, the result could be sent back encrypted such that only the person who paid can read it.

Or, Lets say you paid for software license online with cryptocurrency, the software key can be sent back encrypted such that only the person who paid could read the key.

  • This doesn't work because frequently the keys that signed the transaction are not controlled by the actual payee. See also: en.bitcoin.it/wiki/From_address
    – G. Maxwell
    Jan 23, 2019 at 19:21
  • Yes, it assumed that the person who maintains access to their key. Should they lose access to their private key they will be unable to decrypt the message. Should someone else gain access to their private key the message's contents is no longer confidential. It also assumes that the type of transaction revealed a public key such as Pay-to-PubkeyHash. Jan 24, 2019 at 7:59
  • 2
    I think you did not read the link in my response as it has nothing to do with losing access.
    – G. Maxwell
    Jan 24, 2019 at 8:14
  • From that page, I addressed unreliability assumptions 3.2, 3.3 and 3.4. Which unreliability assumption were you specifically referring to? Jan 24, 2019 at 12:40

It can be used for 2FA in some websites/mobile apps login or other options.

Few darknet websites used PGP for 2FA, so you save the public key when you sign up and decrypt a random text each time you login.

It can also be used for encrypted communication. Bitmex has an option to save your PGP public key which can be used for encrypting all the emails sent to your email address from Bitmex.

Not sure how many wallets have this feature apart from Electrum and if any website/app uses it's implementation for 2FA.


I'm not sure about the security of using this signature algorithm as an encryption scheme.

But as far as usefulness it seems very clear to me that this is a very nice and useful feature.

It basically gives you the ability to use bitcoin addresses as email addresses! Imagine sending messages to an address (which's pubkey is known as it already made a payment) by simply encrypting a message with the public key and broadcasting it as e.g. an OP_RETURN transaction.

Only the owner of the bitcoin address could read it.. A trustless distributed messaging scheme without the need to signup anywhere. Quite revolutionary if you ask me..

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.