It seems that we can only send a message by creating new symmetric keys and key pairs ( shh.newSymKey() and shh.newKeyPair()

Then post shh.post() a message using the parameters:

  • symKeyId which encrypts using the symmetric key.

  • sig optional key pair ID which signs the message

Are Ethereum addresses disconnected from Whisper in term of identity management? It would have been great if we could address a message encrypted with and to an Ethereum address.

I want to do this PoC:

  • user (with eth address) X wants a secret key that only the users listed on a smart contract have, let usersListed be A,B,C,X
  • user X broadcast using whisper to users A,B,C - "I want the secret key" (this message is encrypted for each user)
  • Anybody (A B or C) from the list, once this message has been received, send back an encrypted message containing the secret key, to user X.

1 Answer 1


Ethereum keys are used to sign messages. It is bad practice to use the same key to sign and to encrypt, as signing and decrypting are the same operation.

  • So one solution is to have a smart contract and update it with a whisper identity generated for the smart contract dApp.
    – David P
    Jan 20, 2018 at 22:37

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.