How to transfer Ether between 2 smart contracts?

Sending Ether between smart contracts is very important. After all, it’s because smart contracts can do financial transactions that they are so powerful.

But surprisingly there are a few caveats when you want to send ether from a smart contract:

  • Transfer units are in wei (10^-18 ether), not ether
  • There are several functions to do the same thing
  • If the recipient address has the `address` type, it does not work…

huh?

Alright, without going through all the details, you can just copy paste this snippet in your smart contract:

contract A {
  transferEther(address payable recipient) external {
      recipient.transfer(1000);
  }
}

This means “Send 1000 wei from the A smart contract to the recipient address (can be another smart contract or a regular address controlled by a human).

BONUS TIP: instead of 1000 you can also use some of the pre-build units of Solidity, such as 1 ether.

If you want to see a more thorough explanation of ether transfers from smart contracts, I have created a short video on youtube. Check it out it’s free!

And if you want to have even more practice with financial transfers in Solidity smart contracts, check out Dapp 30, a complete Solidity course where we build 30 smart contracts, test them, and build a frontend for them (full Dapps).

Leave a Reply

Your email address will not be published. Required fields are marked *