1

my understanding is that contract accounts cannot create externally owned accounts (EOA) - EOA's can only be created by other EOA's.

when first created, bits representing an EOA are added to the state trie associated with a particular block.

what are the events that cause these bits to get added to the state trie in the first place?

i assume i generate a public-private key pair off-chain, derive an EOA address from the public key, and give that (never-before-seen) EOA address to a friend who already has an EOA and who wants to send me 2 ETH.

does my friend submit a transaction from his EOA that transfers 2 ETH to my (not yet existing in the state trie) EOA address? and once this transaction is mined into a block then the EVM creates a new leaf in the state trie corresponding to my new EOA address where that leaf has a balance of 2 ETH?

1 Answer 1

0

There is no on chain creation process.

Yes, the keypair is generated off chain. The address is derived from those (simplified explanation).

As far as the EVM is concerned, if an off chain entity can sign for it, then carry on. So there's no nothing to initialize.

Addresses for which no activity has been observed still exist. Balance 0. Data for contract is empty. We can't know if anyone has a key or not.

Hope it helps

2
  • thanx for your reply. if i create a new EOA address then give it to a friend who puts that address in the "to" field of an eth_sendTransaction() RPC, what happens then?
    – jdmeta
    Commented Apr 7, 2023 at 4:14
  • If he sends ETH, the address receives it. If he adds data, i.e. a contract function call, then it reverts because there is no contract there. If he sends a token, the to field is the token contract and it follows the instruction (e.g. contract.transfer(recipient, amount) and it makes an internal accounting entry to show that the EOA has some tokens. Commented Apr 7, 2023 at 18: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.