MetaMask Monthly: November

Monthly updates from the MetaMask Team

Jason Lee
MetaMask
Published in
6 min readDec 3, 2019

--

Web3 Permissions Rolling Out: Sites Now Remember What Account You Connected With

Since the beginning of web3 browsers, there have been issues where there were privacy implications with logging into a site that were not obviously apparent.

Last year we began tackling these issues with EIP 1102 privacy-mode, which means only sites you’ve “Connected” to are able to see your current account, but this still left a problem open, where every site you connected to could see any account you “selected” within MetaMask
As of Version 7.7.0, MetaMask is finally closing this long standing issue with the first release of our web3 permissions system.

First specified in August via EIP 2255, our login permissions system provides a framework for MetaMask to associate a set of permissions with each site you connect to. The first implication is that you will now stay logged into each site with the account you sign into it with, but over time we are building this system to make more and more things possible when signing into sites with MetaMask.

Some possibilities we’re excited about:

• Letting sites include a signature challenge at sign-in time.
• Letting sites specify the network(s) they need to connect to.
• Letting sites decrypt messages on a user’s behalf.

Starting with the next release (version 7.7.0), you will be able to delegate your very first permission! When you connect to a site, you can select a specific account, and MetaMask will remember which one you used.

This means that you can, for example, connect to some DApps with Account 1 and others with Account 2. To change the connected account on a site, you should now use the connected sites option in the account view:

We are excited to roll this out, because it’s some of the strongest privacy enforcement we’ve ever shipped, and of course, it paves the way for our coming extensibility.

[Update] Since starting to roll this out, we’ve had some responses that we under-communicated this pretty big behavior change, and we’re sorry about that. We’re going to be making a push to educate users about this now to ensure Dapps don’t carry the burden of explaining to users how to switch accounts under the new model. This is definitely a new flow for users to learn, and we are going to be improving this interaction more and more over time. You can also initiate a fresh account selection with a fresh call to ethereum.enable().

Changes to the MetaMask Inpage Provider

Please be advised we’ve postponed these changes to January 13. On January 13, 2020, the MetaMask inpage provider — a.k.a. window.ethereum — will:

We will start supporting the replacement API during the week of December 2, 2019. You can find more info Here once the new API is available.

On January 13, 2020, we are making our inpage provider fully compatible with EIPs 1102 and 1193. To do so, we have to deprecate a number of legacy features. In the end, we believe that dapp developers and users will benefit from this change. If you are a MetaMask user, you will notice better dapp UX over time. If you are a dapp developer, some of these changes may be breaking, and we encourage you review changes and updates HERE.

Multi-Collateral Dai

As of November 18 2019 Maker has upgraded its Dai token to “Multi-Collateral Dai” (MCD) and requires all users interacting with Dai migrate their tokens to the new version. Dai now exclusively refers to Multi-Collateral Dai and what was previously called Dai is now Sai (Single Collateral Dai).

To convert your Sai tokens to Dai you can simply do so Here

Going Forward

Users with Sai will now see Sai in their token lists. New users of Sai and Dai will be able to add and track either manually (or both at the same time).

San Francisco Blockchain Week

At the beginning of November numerous blockchain startups, enterprise companies, academics, developers, and investors from around the world came together to define the future of blockchain and cryptocurrencies. In attendance was our Co-founder Dan Finlay where he helped contribute to a panel discussion on The Future of Wallets. In summary he expressed high hopes that making the wallet a more permissionless space will be the way to ignite faster innovation to allow features such as mixers, layer 2 protocols and contract accounts. To watch the discussion that took place check it out HERE

Hackathons that built on MetaMask Snaps

Last month you may have heard we released the new MetaMask Snaps Plugin System. An exciting new development that can bring permissionless innovation to the Web 3.0 ecosystem. This month we got to see its potential in action when we had teams building on it at Hackathons. Not only did these teams build on MetaMask Snaps for their projects but they ended up won in multiple category's as well!

San Fransisco Blockchain Week DeFi Hackathon (Nov 1–3)
Agoric in MetaMask in Agoric-
This team got together during this hackathon to create this core integration of Agoric’s SecureJS blockchain platform with the MetaMask wallet to enable developers to create seamless, secure Dapps.

An Agoric blockchain user first browses an enabled Dapp website. The Dapp can use MetaMask to fetch wallet balances and exchange digital assets connected to the Agoric Cosmos zone by:

  1. Using the Dapp’s logic to construct an offer
  2. Prompting to approve the transaction by a secure browser popup which clearly explains the enforced constructed terms
  3. If approved, executing the exchange via Zoe, Agoric’s offer safety server

Read their Devpost HERE

ETHWaterloo 2 (Nov 8–10)
DeFi Custody Wallet-
Allows you to create a smart contract wallet as a MetaMask account and use it with any DApp you want. It also has a “dead’s man swich”. If you stop using that account for any reason for a period of time (i.e. you lost the private key or you are dead), it will send all funds to the predefined wallet, automatically!

Read their Devpost HERE

Connexion- A ENS-connected message service in MetaMask. The end goal was to create a fluid messaging platform that all users of MetaMask could access easily. Use cases include being able to message ENS names (companies, people, etc.) that you don’t know personally and receive broadcasts in a decentralized way, all through MetaMask itself.

Users can send a message to any address/ENS name. Their message will be put on IPFS with the hash uploaded to the smart contract. The message will pop up in MetaMask’s native UI and the recipient can access the message directly in MetaMask.

Read their Devpost HERE

Development What’s New?

MetaMask v 7.6.1 is out and auto-updating in browsers near you. Next time you pop it open, check out some of the improvements listed below. These changes are new as of this month.

  • #7296: Added a “Retry” option for failed transactions
  • #7326: Fixed edit contact details
  • #7325: Update eth-json-rpc-filters to fix memory leak
  • #7333: Cleanup beforeunload handler after transaction is resolved
  • #7038: Add support for ZeroNet
  • #7334: Add web3 deprecation warning
  • #6924: Add Estimated time to pending tx
  • #7177: ENS Reverse Resolution support
  • #6891: New signature request v3 UI
  • #7271: Redesign approve screen
  • #7379: Set default advanced tab gas limit
  • #7380: Fix advanced tab gas chart
  • #7390: Update json-rpc-engine (Now supports ordered batch requests.)
  • #7414: Ensure SignatureRequestOriginal ‘beforeunload’ handler is bound
  • #7412: lock eth-contract-metadata (#7412)
  • #7416: Add eslint import plugin to help detect unresolved paths
  • #7414: Ensure SignatureRequestOriginal ‘beforeunload’ handler is bound
  • #7430: Update MetaMask badge color
  • #7431: Add all icons to manifest (#7431)
  • #7426: Ensure higher quality Etherscan results.
  • #7410: Fix sourcemaps for Sentry
  • #7420: Adds and end to end test for typed signature requests
  • #7419: Added webRequest.RequestFilter to filter main_frame .eth requests
  • #7450: Add migration notification for users with non-zero Sai
  • #7475: Add ‘Remind Me Later’ to the Maker notification
  • #7436: Add additional rpcUrl verification
  • #7468: Show transaction fee units on approve screen

In the past month…

✅ (157) PRs merged

🛠 (165) commits

💫 (48) GitHub issues closed, (53)opened

🔧 900+ support tickets solved last month

💥 10,969 lines of code added and 7,089 deleted.

If you have any questions or suggestions, you can always reach out to us directly or file an issue on our GitHub.

Thanks for reading and stay foxy!!! 🦊

Jason & the MetaMask team

--

--

Jason Lee
MetaMask

BizDev & Partnerships at Phantom | Previously @coinbase @metamask_io and @ConsenSys