[Ethereum] How to use MEW to access simple wallet contract created in Ethereum Wallet / Mist

ethereum-wallet-dappmistwallets

I picked up some ETH around a year and a half ago and left it in a simple wallet contract created using the Ethereum Wallet / Mist in July 2017.

I'm offering a reward of $100 in ETH to the person that can help me gain access to this ETH as I'd like to move it into cold-storage.

For a couple of weeks now I've been attempting to access the wallet by syncing to the blockchain but much like others, I have been unable to get past the last few 100-150 blocks each time.

The light sync is practically unusable and I believe I do not have enough storage space to sync the full blockchain as it has massively increased in size and does not fit on my current hard drive.

If I had left the ETH in my account:

https://www.etherchain.org/account/fb42a50c3eefdd2e32cbd056ea8bfcb172d4b75a

I couple simply use MEW to transfer the ETH out of the account and be done with Mist.

However… thinking I'd be smart and add an extra layer of security / learn to use the wallet interface by doing, I've left the ETH in said simple wallet contract:

https://www.etherchain.org/account/ad24b48f33746e68bdcdc2e7f5857ee0eeec2efb

More information on wallet contracts:

https://klmoney.wordpress.com/beta7-contract-wallets/

I am aware that MEW has added contract functionality and I have the keystore associated with this contract (a single sig. contract) that should in theory unlock the ETH and make it accessible, however even with the correct ABI input given the MEW contract options I cannot work out the way to extract the ETH from this wallet either to the account associated or to a different address.

My question (or essentially plea for help) is:

1) Is there a way to interact with my wallet contract using the MEW contract interface (or another software)

EDIT:

I believe there are 2 other fixes that are possible also…

1) There is a way to reduce the chaindata folder size of the blockchain import (pruning), though I believe there is still functionality issues with importing the last 100-150 blocks given the reading I've done on github. Are there people out there that have successfully synced to Mist in recent times, if so, how?

2) Another potential fix is importing my private key into Parity and gaining access to my wallet contract here instead. The Parity option is something I haven't looked into too much, is it at least theoretically possible to import a keystore and gain access to associated wallet contracts through Parity?

Thanks for your time.

Best Answer

I believe you can just kill the contract. Please read to the end before attempting it.

Steps to take

  1. From https://www.myetherwallet.com/#contracts, enter 0xaD24B48f33746e68BDCDC2E7F5857eE0EeEc2EFB as the contract address, and then paste the ABI. You can copy the whole thing from here: https://etherscan.io/address/0xaD24B48f33746e68BDCDC2E7F5857eE0EeEc2EFB#code. (Click the "copy" button to the right of "Contract ABI.")
  2. Then pick the function "kill," and enter the address you want to send the ether to (so make sure it's an address you have the private key for) as a value for the _to field. Be really careful about this step.
  3. Next, unlock the account using the Keystore/JSON file + password or whatever form you have the private key in.
  4. Finally, click "WRITE" at the bottom of the page, and then "Generate Transaction." From there, you can either copy the raw transaction (to submit it later) or go ahead and submit it to the network.

Additional notes

For added security, consider downloading an offline version of MyEtherWallet and doing this all locally (and ideally disconnected from the network). You can download an offline version via a link in the footer on https://www.myetherwallet.com. In that last step above, you can copy down the raw transaction, and then go back online (or transfer it to another computer) to submit it. Etherscan has a nice tool for pasting in a raw transaction and sending it out to the network.

Use ETH Gas Station to figure out a good gas price. You can set the gas price on MEW via a dropdown in the upper right corner of the page. At the time I write this, 5 or 6 gwei seems good.

EDIT

You can do the same thing with the execute function. Pass a _to address that will receive the funds, and a _value of how much ether to send (in wei). _data can actually be anything, but I believe 0x0 is the right value to just send an empty bytes.

Related Topic