I have a message encrypted with the public key. Metamask has its corresponding private key (account). How can I decrypt it with the metamask? Does metamask provide such feature?

What I meant is just like while performing the web3.eth.sign function, metamask provides us the window to sign a message does it also provide some functionality to decrypt a message?

In my application server stores a code (text) encrypted with user's public key. In the client side (javascript) user first needs to decrypt this code to do some task. So, either I prompt user to enter its private key (which is considered a bad practice) or I use some wallet or account management like Metamask.

Please suggest.

  • Metamask does not have a feature for what you've described. Maybe provide more context :) ? Commented May 23, 2018 at 19:24

2 Answers 2


Looks like Metamask added functionality for this.

You can use their following API commands: getEncryptionPublicKey(address) & decryptMessage(address, data)


Currently, Metamask doesn't provide any such functionality. A discussion is going on to make some relative update. You can stay tuned: https://github.com/MetaMask/metamask-extension/issues/1190

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.