EOSCommunity.org Forums

Metamask on EOS

photo_2021-03-29 20.27.22

Over the last couple of months our team (EOS Argentina) has been thinking of ways to make EOS more accessible to the broader crypto space. EOS has great dapps and a very large community, yet we have heard from friends and crypto enthusiasts that they find it hard to use. Many people agree that the number one problem on EOS is the initial onboarding process, the account creation on EOS is different, and different is not always “easy”. So how can we make EOS less different? We decided to integrate a wallet that crypto users are already familiar with.

In this sense, we set our main objective to make EOS simple by improving its usability and we are glad to say that we have made some progress by bringing Metamask to EOS.

Native EOS account vs micro-account

When we started to think about the integration of Metamask, there were two possible ways of doing it from the EOS account perspective. On the one hand, each Metamask account could be given what we call a “micro-account”, a type of account that lives within a smart contract. These accounts could manage balances in different tokens, make transfers, but it’s difficult to make them interact with other smart contracts and dapps of the EOS ecosystem.

One advantage of these types of accounts is their cost, they take up very little RAM so creating them is very cheap. It should be noted that although they are inexpensive, they still have to be previously created thus having the same initial friction that regular EOS accounts have.

Another significant disadvantage of the “micro-accounts” is that it would require DAPP developers to modify part of the code of their DAPPs if they want to fully support them.

The second option was to create an EOS account for each user in Metamask. These, being standard EOS accounts, would have the ability to interact with any contract/Dapp natively. They would have access to the full power of EOS.

The downside of a full featured EOS account was its cost. To date, creating an account in EOS has a cost of about 0.5 USD. However we think that this is a minimal price to pay to the regular crypto user (those that we are trying to attract), because even considering an increase of 5x it would still be less than an ETH transfer fee. From our point of view, the advantages of using a full EOS account exceed its disadvantages so we went on that route.

User Experience

Metamask users are used to not having to do anything upfront (create account, stake, rex, powerup) in order to use their wallet. They simply install the extension (or the mobile version) and once they received its first tokens (ETH, BNB, etc) they can operate against any DAPP on the network. We wanted to emulate that experience.

[Alice] Hey … give me your address so I can send you some tokens

[Bob] Hi, here 0x1234123412341234123412341234123412341234

[Alice] Sends 5 EOS to 0x1234123412341234123412341234123412341234

[Bob] There they came! Thanks

[Bob] goes to “greatEOSdapp.com → he uses it as usual, paying a fee for each transaction.

Fees made simple

Fees use the same format as many other networks: you can see how much you will pay for the transaction and the wallet will take care of the resources to cover that transaction.

Test Metamask on Kylin

The Kylin Testnet can be added to Metamask by simply adding a new network in your wallet’s settings.

This is the information you need to add under new networks in your Metamask settings:

All transactions in metamask will be signed for a chainId 95, this chainID is not used by anyone according to https://chainid.network/, however, as a precaution we recommend using a new metamask wallet with a different seed from the one you use regularly on other networks.

After you have added the network you should see Kylin as one of your networks:

You should now be able to send and receive tokens, feel free to leave your Metamask account here to ask for some test coins.

You can also test the UAL integration by going to https://kylin.evodex.io and connecting your wallet, remember that if you are using the mobile version you would need to access it through the “explorer” inside your metamask wallet.

What’s Next?

We will continue to work on this project and will be publishing documentation and code in the coming weeks, we welcome your ideas, contributions and comments.

We are working at full speed to have Metamask on the EOS mainnet as soon as possible.

30 Likes

Great job guys congrats !
How does the wallet manage the resources of a transaction ? is it managing CPU, NET and RAM optimally ? And to whom do the fees go ?
Thx

2 Likes

Hi @freepizza95, all resource usage for the transaction (CPU+NET+RAM) will be combined into one fee that is what the user will see (and sign) on the Metamask interface.

5 Likes

This is the project I have always hoped for. Regarding ram, I think it is possible to issue a new coin. Just like rex, the person who owns ram can generate a space in the table for those who need it, and increase or reduce the handling fee according to the usage rate. , And then add the handling fee to the pool like rex, similar to mining with ram

1 Like

So, It can only interact with EVM DAPP? or both?

I think it has nothing to do with evm. The main purpose of this project should be to wrap the interface of existing dapp so that they can be used in metamask, and temporarily get rid of the eos account system

1 Like

Hope so, will try it later. :smiley:

Is there a faucet? :thinking:

The project is not using EVM at all, you are controlling a full EOS account that is tied to you Metamask address

2 Likes

If you have EOS on Kylin, you can transfer to you Metamask address like this

cleos transfer youraccount etheraccount "10.0000 EOS" "your_metamask_address"

1 Like

When you set up your metamask leave your address here and I will send you some coins.

Hi, yes @sergioyuhjtman created a contract that does just that, I believe is live on Telos, he can comment more on it.

But is not included on this project, maybe a good topic for a new thread

You did a good choice.

Congrats guys! :+1: :+1: :+1:
Can’t wait to try this.

Can someone send me test coins for this?

0x674eCaC57900d0f4e9e903a1A5241d8d2E42218e

I look forward to the future development and cheer for it.
Requests a test coin

0x4cbDCFBa20DF84Fc94a7001869a813C9a79d8579

Nice, should help onboarding people from ETH!

@UsherTechs @dnrlcksl both sent!

1 Like

Good reception.
Thank you.

Thanks, Already deposit some coin from etheraccount contract. This feature needs the mainnet to have an upgrade right?