EOS Crowdsale with MyEtherWallet - The Complete Guide

in #eos8 years ago (edited)

eos-blockchain.png

There's been a bit of confusion about how to contribute to the EOS ICO with MyEtherWallet. I speculate this is an inadvertent result of Dan being spoiled by Graphene blockchains, and the inherent ease of building a web-interface on top of them. By using MetaMask, the EOS team could come close to meeting these high standards. The reality is likely a bit different, but I digress...

This ICO Contract was designed to be interacted with through the Official EOS Site. Using the official interface helps you understand various parameters and avoid potentially catastrophic validation mistakes and/or process omissions. On the other hand, MyEtherWallet aggregates interfaces rudimentarily at best, and so you are unnecessarily inflicting a great deal of usability constraints onto yourself when attempting to interact with the EOS Token Sale contract in this way.

All that aside, some people don't want to use the Official EOS Page because it requires MetaMask or they don't use Chrome. Some just insist on using MyEtherWallet (MEW). There's also the chance that the EOS site goes down or MetaMask causes you problems, in this situation, using MEW is one potential workaround. This article is directed towards this niche group of users and entirely possible situation.

Instructions start at Dancing Avocados

Due to the complexity and risks associated to this crowdsale I did not skimp on any details, and it will probably be the most tl;dr article you will (or will not) read today. For those of you who want me to just tell you how to participate without explaining the risks, you'll be sorely disappointed, because that's not going to happen here. It's a complex ICO that requires explanation, accept no less.

This guide is intended for ADVANCED USERS

If you are a novice, you should really just install the MetaMask Chrome extension and proceed over to the Official EOS Contribution MetaMask enabled Interace. For those that don't understand how to use MetaMask and the official interface here's a great tutorial that explains it..

That Said, You Assume All Risk

USE AT YOUR OWN RISK. I AM NOT RESPONSIBLE FOR TOKEN LOSS. THIS IS NOT LEGAL OR INVESTMENT ADVICE. IT IS HIGHLY SUGGESTED YOU READ THIS ARTICLE IN IT'S ENTIRETY AND UNDERSTAND THE IMPLICATIONS BEFORE CONDUCTING A TRANSACTION. IF YOU'RE A US CITIZEN OR RESIDENT YOU CANNOT PARTICIPATE IN EOS TOKEN SALE AND BY EXERCISING THIS CONTRACT YOU ARE AGREEING TO THOSE TERMS.

About the EOS Token Sale

It's probably a good idea to understand a higher level view of the EOS ICO, here's a wonderful article written by @trogdor. If you're more technical, read the whitepaper and if you don't know how to read instructions just scroll down to the comments and ask a question that was answered in the article you're commenting on ;)

dancing avocados

Prerequisites

  1. Prior MyEtherWallet experience
  2. A funded Ethereum Wallet (for funding the contract, and paying the fees associated to transactions)

Useful Tools before you begin

If you want to be playing on the same level as contributors using the official MetaMask integration on the EOS site, you may consider using one or both of following tools that will provide insight into the current state of the EOSCrowdsale.

First up is EOSScan, it will show you the current rate, as well as time left in the current window and is very simple to use.

Screen Shot 2017-06-28 at 6.30.04 PM copy.png

Next up is for people who want to see into future windows, here's a tool I made based on code originally written by Luke Stokes, it takes about 60 seconds of setup but allows you to peak into future windows. It also display both USD and ETH EOS rates. This is most useful if you're looking to contribute to future windows

Screen Shot 2017-06-28 at 5.18.21 PM copy.png

Feel free to let me know of any other tools you may have come across in the comments below :)

Step 1: Fund EOS Contract (The Current Window, "Today")

This will fund the current window, if you're looking to fund a future window, click here

  1. Obtain the contract address from http://EOS.io or trust me when I say it is 0xd0a6E6C54DbC68Db5db3A091B171A77407Ff7ccf(It's always suggested to trust no one in these situations)
  2. Go to https://www.myetherwallet.com/#send-transaction
  3. Load your wallet using any one of the methods listed, for this example I used the Keystore File. Enter the password to your wallet in the very likely event is is encrypted. If it's not encrypted, may Murphy's Law forever be in your favor.
  4. Click Unlock button
  5. In Address field, enter the contract address.
  6. In Amount to send field, enter the amount you would like to contribute.
  7. Allow the wallet to suggest a Gas Limit. If it does not autopopulate, enter 90000 or more. If your TX fails, increase Gas Limit. If you would like your TX to go through more quickly, adjust your gas limit accordingly.
  8. Click Generate Transaction button
  9. Check the details of the transaction, and if you are confident, click Yes, I am sure! Make transaction
  10. If all went well, a green bar will appear at the bottom of the page including a link to your transaction on the blockchain.

Step 2: Claim EOS Tokens

You can claim tokens at the end of any window you have contributed to. If you attempt to claim tokens before a window(s) you have contributed to has closed, the transaction will fail. This is intended functionality.

  1. Go to https://www.myetherwallet.com/#contracts
  2. Under heading Select Existing Contract is a dropdown, select EOS Contribution
  3. Click Access
  4. Under the "Read / Write Contract" heading, in the dropdown select claimAll.
  5. Load your wallet using any one of the methods listed, for this example I used the Keystore File. Enter the password to your wallet in the very likely event is is encrypted. If it's not encrypted, may Murphy's Law forever be in your favor.
  6. Click Unlock button
  7. Click Write button
  8. Set Amount to send to 0 and allow the wallet to suggest a Gas Limit. If it does not autopopulate, enter 90000 or more. If your TX fails, increase Gas Limit. If you would like your TX to go through more quickly, adjust your gas limit accordingly.
  9. Click Generate Transaction button
  10. Check the details of the transaction, and if you are confident with the details you have entered, click Yes, I am sure! Make transaction
  11. If all went well, a green bar will appear at the bottom of the page including a link to your transaction on the blockchain.
  12. After the transaction is confirmed the ERC20 tokens will be transferred to your wallet.

Note: You will not see your tokens immediately in MEW, you need to take a few extra steps. See instructions for seeing token balance and transferring tokens.

Step 3: EOS Public Key Mapping

This is the part of the process that confuses people the most. So please read every single word here very carefully. These steps can be completed at any time before the ERC20 tokens are frozen somewhere around June 3rd 2018.

Step 3.A: Generate EOS Key-pair

  1. Visit the EOS Token Generator created by @nadejde based off the official EOS Contribution Interface code, but with everything stripped out but the Key Generator. The original article about this code is here
  2. Click Generate EOS key
  3. CAREFULLY SAVE THE GENERATED KEY-PAIR

If for whatever reason you lose them, you can update your EOS keys at any time anytime between now and 48 hours after the token sale.

Step 3.B: Registering/Mapping your EOS Key

About EOS Key Mapping

Registering your EOS key will map the key-pair you generated earlier, the public key of your future EOS wallet, to the Ethereum Address this transaction is broadcasted from. It is very important to understand this, because 48 hours after the token sale ends, ERC20 tokens can no longer be transferred, and where they live at that moment in time will be where they die, only to be reborn on the EOS blockchain according to the mapping defined by this function.

(takes deep breath)

For example, if you move the EOS ERC20 tokens to an exchange, and fail to move your tokens back to an Ethereum address you posses the private keys for that is mapped/registered to an EOS address, you will not have access to those EOS tokens on the native chain after June 3rd 2018.

...But relax, you have time, there is no rush or need for anxiety yet, June 3rd is still a ways away

Does it matter when the EOS keys are mapped to an Ethereum Wallet?

What's most important about all this is that you have a valid EOS key-pair whose public key is mapped to an Ethereum wallet containing EOS ERC20 tokens BEFORE the end of the 48 hour grace period following the end of the EOS token sale on June 1, 2018 at 22:59:59 UTC

This means that registering a.k.a. "Mapping" your EOS key can be completed at your discretion, before or after funding the EOSCrowdsale Contract, at any time between now and the end of the ICO.

EOS Public Key Registration can be completed at your discretion, before or after funding the contract

How to Register your EOS Key

YOU ONLY NEED TO MAP AN EOS KEY TO AN ETHEREUM ADDRESS ONCE! DOING MORE THAN ONCE IS JUST WASTING MONEY! ... Unless of course you need to Update Your EOS Key Mapping

  1. Go to https://www.myetherwallet.com/#contracts
  2. Under heading Select Existing Contract is a dropdown, select EOS Contribution
  3. Click Access
  4. Under "Read / Write Contract" select registerfrom dropdown.
  5. In the field named Key enter the EOS Public Key you generated earlier. DO NOT, I repeat, DO NOT enter your Private key here.
  6. Load your wallet using any one of the methods listed, for this example I used the Keystore File. Enter the password to your wallet in the very likely event is is encrypted. If it's not encrypted, may Murphy's Law forever be in your favor.
  7. Click Unlock
  8. Click Write
  9. Set Amount to send to 0 and allow the wallet to suggest a Gas Limit. If it does not autopopulate, enter 90000 or more. If your TX fails, increase Gas Limit. If you would like your TX to go through more quickly, adjust your gas limit accordingly.
  10. Click "Generate Transaction"
  11. Check the details of the transaction, and if you are confident, click Yes, I am sure! Make transaction
  12. If all went well, a green bar will appear at the bottom of the page including a link to your transaction on the blockchain.

Unanswered Questions

  • What happens if a single EOS public key is mapped to multiple Ethereum addresses?

Answered Questions

Can register() be called from the Ethereum wallet to update its mapping to an EOS public key?

Yes, it can

How does buyWithLimit() work in practice? Are funds not meeting limit requirements returned when running claimAll()? If so, where is the code for this?

buyWithLimit() function will prevent you from sending the same contribution twice, for example, if a TX is stuck due to network congestion. I have provided a tutorial on this

Conclusion

I strongly suggest you use the official EOS contribution page with MetaMask integration, here's a good tutorial that explains how. It takes far less time, and the chances of making a mistake are many orders of magnitude lower.

For the advanced users, MEW fanatics, and paranoiac offline TX signers, you probably found this helpful. If you've found an error, please let me know!

Recap

  1. Fund Contract from Ethereum Wallet you have mapped with your EOS key (or be sure to send the ERC20 tokens there by end of Token Sale)
  2. Claim your tokens if you would like to transfer them
  3. Generate and save EOS key pair
  4. Register (map) your EOS public key to your Ethereum Wallet (technically anytime before end of Token Sale).

Remember that your EOS ERC20 tokens should be in a wallet mapped to an EOS public key that you posses the private keys for sometime before the end of the ICO.

If you have no specific reasoning for preferring MEW you should really visit this article by @trogdor that explains the EOS sale in its entirely, as well as the MetaMask contribution process.

Troubleshooting

  • If you're getting "Window Blocked" errors in MEW, try the following
    • Disable your adblocker
    • If using brave, switch to chrome
    • Visit chrome://settings/content/popups and turn off pop-up blocker (switch to "allowed")

More EOS MEW Guides

Coming soon

  • Instructions for adding EOS ERC20 token to MEW with "Add Custom Token"
  • Videos for each step.

Again, USE AT YOUR OWN RISK ... I'm only a Sandwich.

Thanks for reading :)

Changelog

  • Some wording has been improved and simplified, excess removed.
  • I verified the instructions, You can view Registration TX and Funding TX on the blockchain. I will test the Claim instructions at end of first window.
  • MyEtherWallet added contract to their interface, updated accordingly.
  • Removed Technical Breakdown, moved it into it's own post.
  • Changed step order to subdue chaos and confusion.
Sort:  

I can no longer edit this post, but please consider claiming your tokens using claim function. It's arduous, but you will save money. Instructions here: https://steemit.com/eos/@koyn/minimizing-the-cost-of-gas-when-claiming-eos-using-myetherwallet

Hi yes you will find that you actually do need to use the 'claim' function rather 'claimall'... I just wasted about €9 trying to make MyEtherWallet 'claimall' - you need to go to 'claim' in the drop down under contracts and then enter the period under which you contributed for tokens. When trying to 'claimall' I was repeatedly told I was 'outof gas' when trying to claim the tokens... being relatively new to this I tried repeatedly, raising the gas threshold, but wasted money each time, as 'claimall' doesn't seem to be the way to go... you need to use 'claim' and enter the period which you're claiming for...! (In fact just follow the instructions on the EOS website!)

Thanks @sandwich for your sound and useful tips. Just before reading your post I did what the EOS website suggest (I'm referring to Step 2 and bullet point #8 of this post). So as the EOS website says, I claimed my tokens with 4500000 gas limit in MEW. This is insane! I ended up paying $22 just to claim 211 tokens. EOS or MEW should warn users about the amount spent when using gas. Now it's too late. I had a good lesson today.

Hi,
On the step 9-10 it says there are no funds for gas and i cant get through that! any clue?

There's no instructions anymore on EOS website. What shall I do now then? Thanks @sandwich

I registered my Exodus EOS wallet to MEW. Now its linked together.
http://support.exodus.io/article/65-register-eos

Thank you @sandwhich! Very useful. I also strongly recommend NOT using ClaimAll as this gets very expensive (essentially going through all days, one by one since the start of the ICO). Use Claim instead.

If you don't remember the period(s) you contributed to, you can use this tool: http://eoschart.com/ Put your ETH address and it will tell which periods that address contributed to

Thank you for describing risks of using MyEtherWallet, I was planning to use it to participate in ICO, but this article changed my mind. Actully it is great written and I would pick it as my guide, but right now I can't afford time for reserching this topic. Thank you for your work, it is really valuable!

Consider using MetaMask and official EOS Contribution Page :)

Yes, I think it is better option, because risk of getting error myself is greater than risk of losing money by using online wallet. I liked MyEtherWallet offline signing feature.

I began investing in EOS with myetherwallet. I haven't began claiming my EOS yet but I'm about to do this. I'll use the tool you forked from Luke and I hope everything will go right.

I had tried with metamask but we're able to make it work.

I've just started claiming the tokens. @sandwich, once again thank you for the detailed instructions.

Hi, I made the token purchase in eos through myetherwallet and I see that it is very complicated to claim them out there, I wanted to know if I can claim them in metamask, or am I doomed to charge them only in myetherwallet? Thank you

I really like your stuff... I am really new to this stuff and I wish I had read about MetaMask before I purchased EOS tokens with MyEtherWallet. I have not been able to claim my tokens yet. I have gone through the instructions a few times and wasted transactions fees, I guess all part of the learning curve. I want to see my EOS tokens and transfer them to MetaMask. I'm sure you have posted this already, so can you point me to where I can get my EOS tokens from MyEtherWallet from the very beginning? I have claimed them, registered them, reclaimed them but I don't have them. I hope I haven't lost them. Is there an easy way to get them out of MyEtherWallet? I'm learning a lot fast, but not fast enough I guess. Thanks for your patience in advance.

The blue pills are 1 dollar the red pills are crypto's :

oui ces tellement interéssant

He broke it down professionally

Started with MEW. Ended with Metamask. I am probably you.

Upvoted, followed & invested into EOS ICO
I will do something imilar to get the German speaking community to participate into this great opportunity, too.

Nice post ! :)

awesome guide! thanks!

Can someone please help me claim my tokens? I participated in the first round by contributing one ETH using myetherwallet and after a few days attempted to claimall but have received nothing after a few days of waiting.

I’m unable to join EOS slack because after inputting my email address and clicking get invite, the button just changes to “token_revoked” and I am unable to join.

I can’t figure out any way to get support from EOS team without access to their slack as I cannot find a forum on bitcointalk where other users or EOS team members are available to help.

Try the email that is posted on the bottom of their webpage to get support.

Brilliant and incredibly useful guide. Moreover, it worked without issues.

If you do plan on using MyEtherWallet, just be sure that you read this guide very carefully. Do exactly as it says, and you'll be fine!

can someone tell me what is EOS token??