Let's say:

  • I own account A, which had a 100 ETH pre-DAO balance.
  • Pre-fork I sent 50 ETH from A -> DAO.
  • Post-fork I had 50 ETHF and 50 ETHC in A.
  • Post-fork I made a transaction with the WithdrawDAO contract, so now account A has 100 ETHF and 50 ETHC (minus gas of course).

How do I split out the ETHF and ETHC in account A?

My thought is that rather than using a splitter contract I could simply make a transaction to deposit the 100 ETHF into a new account B. If my understanding is correct, then if the transaction was replayed on the classic chain it would simply fail due to insufficient funds, and would therefore be immune to a replay attack.

If so, then at this point:

  • Account A has 0 ETHF, 50 ETHC.
  • Account B has 100 ETHF, 0 ETHC.

And my ether would be cleanly split. Is this correct? My assumption is that ethereum transactions fail completely if the balance is insufficient, rather than partially fulfilling the transaction. Just want to make double sure I'm not missing anything.


You are correct. In fact, you could use it as a method to split.

  • 1
    Got it, thanks! What I'm describing is essentially Step 4: Completely empty the account with the highest balance to a fresh address. – Ben Simmons Jul 27 '16 at 17:28

This method works, but it is not final: depending on your future use of the addresses, you might (rather likely, actually) run into trouble in the future.

The trouble is that the transactions that fail now due to low balance might still become valid in the future, if some more funds are deposited to the originating address. If (when?) you (or anyone) deposit(s) 50 ETHC to address A (cumulatively, this could be several transactions), the transaction that moved 100 ETHF to B may, and probably will, be replayed on the ETHC chain and you'll end up with ETHC on address B which you don't want.

Not though that the exact above scenario won't happen if you send some ETHC from A before its balance reaches 100 (due to the spending transaction using the nonce of the potentially replayable tx); but similar scenarios can still happen later in the future, at any time.

This is not some theoretic, unlikely situation. I've seen transactions replayed on the ETHC chain, in very similar scenarios to the above, 12 days after they were confirmed on the ETHF chain.

You should at least move all ETHC from A to a new address C, and then never again use A (on any chain), or B on the ETHC chain, or C on the ETHF chain.

(This is unfortunately still not a final solution as other people might send funds to your addresses without your consent, but that's rather unlikely, and mainly their problem. I don't think a method for a complete, final/conclusive ETHC/ETHF split actually exists.)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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