What you need to know about mapping an EOS Public Key to an Ethereum address

in #eos3 years ago (edited)

Do you remember when you were a child, and the teacher used to scold you for not reading the instructions?


Well, read the instructions...

Anyways, I've extracted this bit from Contributed to EOS with MyEtherWallet - The Complete Guide last week to make sharing this information on the telegram channel more accessible. I will be maintaining this and eventually it may diverge from the version in the original article. I have declined payout since this is mostly a copy/paste deal

About Registering a.k.a Mapping your EOS Public Key

What is it?

Registering your EOS key will map a public key to the Ethereum Address this function transaction is broadcast 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 in the genesis block 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.

Some potentially useful links


@sandwich your tutorials and explanations are absolutely valuable and extremely helpful. I figured out how to do all 3 steps using metamask on my own and was left scratching my head wondering if I got it all correct. Turns out I did, but still would not have known it, had I not found your posts So thanks a million for that.
I found this post after copying the exact portion from the larger one in order to ask you my last plaguing question. Does it matter if the EOS ERC-20 tokens are purchased directly through the crowd sale, through an exchange, or through changelly as long as they are deposited in the ETH account mapped to the EOS address (I hold the private keys to)? The way I think I understand this is that the ERC-20 tokens represent a promise in a smart contract to exchange EOS tokens for to a mapped address on the EOS blockchain after the crowd sale ends in jun/jul 2018? I just don't know how the contract sees the ERC-20 tokens for the snapshot?
Thanks again for the great contribution to all of us not quite so techie ones.

Good! As long as the tokens are in a wallet that is mapped to the public key of your EOS keypair, you're good. Doesn't matter where the EOS ERC20 tokens are purchased from.

Thanks, I am pretty sure I am beginning to grasp the whole EOS "idea"? It is so brilliant I am kind of in awe of people who can think this far in advance of the rest of us. Your steemit posts are incredibly helpful and inspiring. You have a gift for simplifying the complex. I will be watching for your new content. Hope you don't stop writing. . .even if immature people post comments to them lol

Would you like to see my bunghole?

Can you explain how you did it in metamask? I can't find anything explaining this. Only MEW. Thanks.

This is super useful dude, this info is hard to find. I still don't fully understand what it means for the tokens to be locked in place on the ETH blockchain.
Nor do I understand the purpose of the tokens for people not interested in developing apps.

Well, if there is a network effect with regards to app development and there comes a scarcity of resources, IE tokens, then the tokens may appreciate in value. So while it has speculative value, it's long-term. Most valuable for developers though IMO.

How do you trade a locked down token though? If I'm holding it after June 1, 2018 how would I give it to someone who wanted it more?

Ah, When ERC20 tokens are FROZEN 24 hours or so after June 1st 2018, these tokens will be worthless. It is because of this why mapping an Ethereum address to an EOS public key is so important, you are mapping your EOS ERC20 token balance so that this balance can be included as a snapshot in the genesis block of the EOS blockchain. If the ERC20 Tokens could be transferred on Ethereum after being moved to EOS blockchain, this would cause confusion and dilute valuation, among a bunch of other things.

In regards to locking, I thought you were talking about the locking in regards to locking native EOS tokens. EOS native tokens in the future, will be locked to secure "bandwidth, computation and storage" resources.

Dude, thanks so much for this reply. I still hadn't figured this out, you explained it super clearly. I found an article on how to link an eth wallet to an eos public key.
Thanks again!

Sandwich, your posts have been invaluable. What happens if the tokens have appeared attached to the metamask address? Do they then need to be sent to a MEW address before the end of the 48 hour period or are okay there?

Edit: I found the contract address and token add location, disregard! Hey, thanks for all your tutorials, you're a great asset.

Hey Sandwich, I was referred over to you to help me solve a problem I have encountered (hopefully). I registered my public key and bought EOS tokens using metamask. I, then, didn't have the available funds in meta mask to fund the contract to transfer the tokens to metamask, so I transferred them to my ether wallet. I then linked myetherwallet to my EOS public key. I think I made a huge mistake in transferring them to myetherwallet, as they never showed up. I used etherscan to check the contract and transaction, and they were, in fact, sent to myetherwallet address. Do you know why they didn't show up? and is there anything I can do now to retrieve them?

I would greatly appreciate any input you may have!

Also, what telegram channel are you on? I was trying to find the info for it and haven't seen it.


You made no mistake. You need to add a custom token, see here

Did you add EOS as a custom token to your myetherwallet?

Once you do the above, you should be able to see your EOS tokens.

@sandwich say I'm a very paranoid person and I want to be sure the private key I generated was copied down correctly. Is there a tool available that can be executed offline to generate the public EOS key from a given private EOS key?

Yes, but it is advanced. You can use this library: https://github.com/EOSIO/eosjs-ecc

@sandwich. I'm reading through this thread like 3 months in the future from when the ICO was going on. I've moved my EOS over to my ledger nano s, and the token balance is showing up just fine. I'm going to go back and re-read the thread, but even though I was not involved in the ICO and bought my tokens from Kraken, I would think I still need to declare/register these so they don't go poof after June 2018.

Ok (deep breath) I've used the link to generate a public key and a private key, and am saving it to my offline USB stored in my safe.... but what do I do next with this public and private key, it also says EOS Token Sale claim key but I'm confused as if this was only for the ICO? Help?

You need to register the public key

So is this necessary for your EOS in your Bitshares wallet?

It's not possible from your Bitshares wallet because technically the tokens are in OpenLedger's wallet, assuming you're talking about OPEN.EOS

Ok, so I imagine they will be mapping them?

I'm in the same boat. I bought open. EOS on Bitshares exchange.
does open EOS need to be registered? or does open ledger just change them out?
I'm lost.

Hello there @sandwich, i know this is not a right place to ask but i wonder why I haven't received my EOS token. I'm using Metamask i claimed the token yesterday and spent about 0.30 on gas ( is it enough? ) and till now i haven't seen any sign of different in my metamask account
Thank you .

This could be because of many different reasons. Go on telegram and send me pm @sandw1ch.

@sandwich but can u explain how to map your Eos to Etherum key. I use Metamask + Eos distribution app.
So the mapping it Is this done automatically when using Eos distribution app?

Would also like to know! WTF is there no info about this anywhere. This is the recommended wallet ( Metamask) for the ICO, but there is no info how to map the address.

Does anyone know how the process of the transfer will take place? That is, the transfer from ERC-20 tokens to native EOS tokens after the snapshot is taken. Assuming of course someone adopts the EOS software.

Hi Sandwich,

I understand that you said "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."
What if I do not want to access those EOS tokens on the native chain and simply sell them maybe at a later stage. Will they at least stay in my account on the exchange, or will they disappear if the exchange did not do that mapping on behalf of its account holders?

TLDR: can I use the same EOS public key to register against different Ethereum addresses?
The long story: I first used a Metamask wallet to buy some EOS tokens, created an EOS key pair and used it to register against the Metamask Ethereum address. Then I purchased some more EOS tokens using my Ledger hw wallet Ethereum address with MEW. I'm wondering if I can simply use the same EOS public key I already have with the Ledger ETH address as well, or should I generate a new EOS key pair?
I think the other option I have (correct me if I have it wrong) is to claim my first EOS tokens and transfer them to my Ledger ETH address. But I don't really want to do that (small purchase/transaction charges/can't be bothered).
Thanks for the guides @sandwich and sorry if I've missed the answer to this somewhere!

Hello, you probably know that entering your private key in MEW online is not a good idea (all your balance might get stolen). It is recommended to generate and sign transactions offline. But currently with MEW it does not seem possible to call the register method offline. Does anyone have an idea how to do that?

hI @SANDWICH, thanks for your post it was very helpul. I have one question, I have registered my Eth address already but i am now paranoid about the site i used to generate the public and private EOS key, i think it was the git hub site.. i am also paranoid i have written my private key incorrectly, is it possible to re register my ETH address with a new key generated from the official EOS.io website?

Hi Sandwich. I've been looking for an answer to this question everywhere and cannot find much talk about this anywhere. Maybe its taboo to talk publicly about idk, so sorry if so. I'm recent to the crypto world so any information on this is appreciated! My friend that introduced me to crypto is US citizen, and trading ETH for EOS through the blockchain, and he is saying that I should do the same. I see a lot of instructions from people on how to get EOS as a US citizen, but never see any comments or videos explaining anything about my below question. I understand US citizens are blocked from purchasing EOS from the site for the reasons that we've all read about. Also I see online that many are contributing ETH to the EOS address through the ETH blockchain using MEW. If/when they register their EOS key through their MEW to validate their tokens, will that show from their wallet that they are US citizens, and flag their purchases of EOS as fraudulent? And can/will block.one be looking for this and void their purchases? Or is this way of obtaining EOS through the blockchain ok to do, and after registering EOS key, there is no risk of having your purchase voided? or is the restriction only cared about and being enforced by the government? I havnt seen much of any conversation about this. Surely people getting EOS that way have to be worried about being shown as a US citizen somehow, when trying to claim their EOS tokens after ICO ends. Will he have any issues keeping his trades from ETH to EOS valid? For this reason i've been skeptical about transferring any ETH to EOS.

This is protection for Block.one. It is illegal for US Citizens to participate in ICOs, it is not illegal for you to buy tokens on the secondary market.