1

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.

  • You should just be able to call kill on the contract, passing the target address (wherever you want to send the ether) as the only parameter. – smarx Jan 14 '18 at 5:02
  • What did you try in MEW, and what went wrong? (I don't see any actual transactions attempted on the blockchain.) – smarx Jan 14 '18 at 5:03
  • I haven't tried anything in MEW as of yet, I was experimenting with adding the contrat address and correct ABI, however, I have not yet entered my keystore for the account associated. As I'm sure you can understand, although I believe "kill" is a valid option, I'd much prefer an option that would allow me to send a small amount of ETH first to test out the command. I totally believe you that "kill" is a valid option, but the worry is that something goes wrong and I lose 20 ETH. – PLaub Jan 14 '18 at 15:57
0

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.

  • Thank you so much for this in-depth advice on using the "kill" function, is there any way we could talk privately for a few moments? I'd like to 1) know what address to send your reward to (when I finalise the transfer) and 2) ideally see the kill function in action. My first impression when I scrolled through the list of functions was that "kill" (though the scariest sounding) was the best option as it kills to an address, however, given my reasonable lack of technical proficiency I would have prefered an option that I can test out with a small amount of ETH first. – PLaub Jan 14 '18 at 16:01
  • See my edit just a second ago. You should be able to do execute instead, which would let you test with a small amount of ether before pulling the trigger for the rest. – smarx Jan 14 '18 at 16:02
  • I don't have a handy way to talk privately... any suggestions? – smarx Jan 14 '18 at 16:03
  • Excellent - I'll use the execute function to attempt to send a small amount before trying any large amounts. Thanks again. – PLaub Jan 14 '18 at 16:04
  • Are you on Reddit, Skype or Discord? – PLaub Jan 14 '18 at 16:05
0

Smarx is the man - he guided me through the process with clear instructions and patience and I now have full access to my ETH once again.

If there are any developers out there that would like to do some blog-work please visit programtheblockchain.com, a fledgling site looking for new writers!

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.