When transactions are made the sender is identified by his signature. But Contracts dont have a private key to sign any transaction or message. So I have some questions:

Can a Contract initiate a transaction? I mean transfering ETH from his account to another EOA or Contract. And if yes, will this transaction be included in the transaction list? And how do they sign the transacion?


No, contracts can't initiate transactions.

But yes, they can transfer ETH and make calls to other contracts, etc., but only as part of a transaction initiated by an externally owned account (EOA).

Etherscan calls those "internal transactions," but they're not technically transactions at all.

  • Then if Contract A transfers ETH to my account, I wont know where it came from until I look into the transaction that triggered the contract and see the code?
    – hadamard
    Mar 11 '19 at 22:55
  • Well, Etherscan will just list it (as an "internal transaction"). I think many tools will do the same.
    – user19510
    Mar 11 '19 at 23:58

Your Answer

