I'd like for someone calling a contract to be able to send me secret info. Lets say it's just the person's physical address because they bought something from me. They don't want to just put that info on the blockchain, they'd like to keep it secret so only I have it.

Should they:

1) Somehow use some form of PKI encryption so the message can only be read by me, then transmit the encrypted message through a call to my contract? (And then I'd have to have some part constantly watching for this.)

2) Wait for Whisper, which may or may not be able to interact with Ethereum contracts and may or may not ever become integrated into Mist and web3.js?

I'm looking into developing something in about a month's time, so the option 1 becomes more appealing to me unless Whisper is further along than I'm thinking. If you think that option 1 is best, can you please provide an example?

1 Answer 1


I know that SafeMarket is using regular asymmetric encryption for messaging. Whisper is being developed, but it's not a top priority, so I wouldn't hold your breath. I'd just have everyone generate their own PGP keys and encrypt everything client-side.

  • Does SafeMarket use regular asymmetric encryption through the Ethereum blockchain? (That is, do the messages pass through transactions)
    – k-zar
    Commented Jul 11, 2016 at 22:29
  • Yes, it currently does. Every user has a PGP public key associated with their account, and messages pass through the blockchain, although theoretically you could use any network Commented Jul 11, 2016 at 22:32

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.