ELI5: Understanding ETH & ETC wallets, splitting, cold storage, and more

in #ethereum5 years ago (edited)

There seems to be quite a bit of confusion regarding splitting and how different wallets (accounts) work now that we have an ETH chain and an ETC chain. This should hopefully help clear some things up.

First thing you need to understand is that every address already "exists". When you "create a wallet" you are not actually doing anything on the blockchain or communicating with the blockchain in any way.

Creating a wallet means you get a randomly generated private key and the address (public key) that corresponds to that private key. Then you save those two bits of information, along with the password if the private key is encrypted, and decide to use it.

Now that you understand that you will understand that any private / public keypair on the ETC chain is equally valid on the ETH chain and vice versa. They are both derived using the same methods and therefore equally valid, as the ETC chain and the ETH chain used to be a single chain.

So, in the simplest of terms,

  • You can think of having one private key that holds both ETH and ETC.
  • You can think of having one private key that unlocks 2 houses: 1 on the ETH chain and 1 on the ETC chain.

What really matters is what funds are in your wallet and what you can do with those funds.

All transactions are also equally valid, just like your wallet, on both chains. If you send an ETH transaction it will be replayed and it will attempt to send on the ETC chain. What does this mean?

An example:

  • I have an address / private key that accesses both my 50 ETH and my 50 ETC.
  • I intend to send 1 ETH to address 0x123.
  • I generate the signed transaction and then broadcast it to the network.
  • The 1 ETH goes through to address 0x123.
  • The signed transaction is taken from the ETH chain and replayed on the ETC chain
  • 1 ETC goes through to address 0x123.

Since it is unlikely that you want to do this (unless you are sending to Poloniex or Kraken where they accept both your ETH and ETC and credit both to your account) you will want to create a wallet specifically for ETH and specifically for ETC. You will not want to hold ETH in your "ETC address" or vice versa. To send Only ETH or Only ETC you need to use the ReplaySafe contract.

This is implemented on MyEtherWallet here via the "Only ETH" and "Only ETC" methods. Instructions for splitting in Mist are here: https://steemit.com/ethereum/@pauls/ethereum-fork-step-by-step-guide-to-safely-splitting-your-eth-etc

My recommendation on how to split via MyEtherWallet.com to two new offline wallets is as follows:

  1. Generate a new clean post-fork ETH address for yourself (to be the final destination of pure ETH) via MyEtherWallet (offline)
  2. Generate a new clean post-fork ETC address for yourself (to be the final destination of pure ETC) via MyEtherWallet (offline)
  3. Backup both private key / keystore files and passwords on a USB drive or two as well as saving them to your computer or printing them. ;)
  4. Send .1234 ETH to your new "ETH" address using "Only ETH" on MyEtherWallet.com
  5. Send .5678 ETC to your new "ETC" address using "Only ETC" on MyEtherWallet.com
  6. Check that only the .1234 ETH moved on etherscan.io. Check that only the .5678 ETC moved on gastracker.io.
  7. Use offline tab to generate a .0001 ETH transaction from your new ETH wallet & a .0002 ETC transaction from your new ETC wallet. Save generated TXs somewhere.
  8. Bring TX to online device & paste ETH TX into MyEtherWallet.com's offline tab at the very bottom. Send. Check etherscan.io. Make sure the .0001 ETH moved.
  9. Paste ETC TX into classicetherwallet.com's offline tab at the very bottom. Send. Check gastracker.io. Make sure the .0002 ETC moved.
  10. If everything receives correctly and sends correctly then you are golden.
  11. Send total remaining ETH balance using the "Only ETH" option and repeat for the ETC balance using "Only ETC". (You'll have to do some math as the "send total available balance" doesn't work with those - sorry!)

Good luck and hope this clears things up for you!