Does a smart contract have a private key ? Can it send the result of exucuting his code to the other nodes ?


1 Answer 1


There are two types of accounts in Ethereum: 1. Externally Owned Accounts(EOA) 2. Contracts Accounts

Every contract binds to a contract account. Contracts accounts has associated code and code execution is triggered by transactions or messages (calls) received from other contracts. So the contract account is not managed by a private key but transactions/messages from EOAs or other contract accounts. And yes, it can send result through sending message to other "contract".

  • 1
    And if a smart contract (an instruction of its code) encrypts information with its public key how will it decipher it later? In fact I'm thinking of designing an online voting system on a blockchain that has a smart contract allowing to generate the ballots and send them to the voters (who are EAOs). the smart contract will need to decipher the votes during the counting phase using the complementary of its public key. It is'nt possible ?
    – M.CHAIEB
    Nov 1, 2017 at 11:26
  • @M.CHAIEB I don't think it's possible. Everything in a smart contract is public. There is no encryption you can do to hide data. This is why people are working on zk-proof smart contract platforms to solve this. Jun 30, 2021 at 13:41

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