I think I just lost a fraction of Ether. I accidentally sent it to the main network, but my contract only existed on Morden. I'm wondering:

Can I deploy the contract retroactively? Is the address created deterministically? If so what pieces must be identical to get an identical address?

It looks like the data will be lost... For me this is ok. I have a suicide function that should return the funds if I can call that.


While it is theoretically possible, it's not very practical.

The address of a contract is computed by sha3 hashing the creator's address with the creator accounts nonce. Thus, if you wait until your nonce matches, and then create a contract with the same account, it will have the same address as the Morden contract, and thus access to the funds.

The issue is that in order to prevent replay attacks, the Morden testnet stats accounts off with an initial nonce of 220. This means you would need to send over a million transactions on the main network in order to access your ETH.

At 21,000 gas per transaction, and 20 GWei minimum gas price, this would cost about 450 ETH, and take about 12 days, at the current block gas limit, although this would actually be slightly shorter since the limit would increase exponentially.

  • Yea I noticed quit a high nonce on mordan. Thanks for confirming. Definitely gonna let it go!
    – ZMitton
    May 15 '16 at 17:01

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.