Announcing MetaMask Version 8

Dan Finlay
MetaMask
Published in
6 min readJul 2, 2020

Everyone’s favorite way to use Ethereum applications now comes with a host of new features!

Today, we’re rolling out MetaMask Version 8. This represents a major upgrade to MetaMask and offers a number of new features that no wallet has delivered before.

Unparalleled Privacy Control

Most wallets today either manage a single account, or expose the currently selected user current account to all connected sites — broadly revealing users’ private information.

In MetaMask V8, when you connect to a website, you have the option to select one or more accounts to associate with that website or create a new account just for that site. You decide what each site has access to.

This new feature enables you to easily switch between accounts, so you can control which accounts interact with different sites across the decentralized web.

If you open a site that is not connected to the selected account, MetaMask will alert you and allow you to connect.

A new connection indicator (seen here with “Not connected” shows your connection status and opens a menu with your account connections and site permissions.

These site permissions reflect our EIP-2255 permissions system, which will become more rich over time. These new and enhanced permissions will enable powerful features like decryption, access to wallet information (like your favorite tokens or contacts), and paves the way for MetaMask Snaps extensibility.

A Slick, New UI

Perhaps the most obvious change to version 8 is a refreshed MetaMask UI. Our team has focused on delivering these new features with a cohesive experience. When opening MetaMask version 8 for the first time, you’ll be introduced to our new features through helpful UI hints.

The home screen, asset page, and transaction history have been redesigned with your assets now easier to access. Instead of tapping a hamburger icon to view your assets, you now access them via the ‘Assets’ tab on the home screen.

The ‘Assets’ tab contains a list of the assets you currently hold and are tracking in MetaMask. Click each asset to view a details page with the transaction history of that asset.

The new ‘Activity’ tab is a redesigned transaction history view. With new iconography, each type of transaction is more easily recognizable.

More Features For Developers!

Introducing Web3 Encryption

Thanks to a huge community contribution, MetaMask now ships with two new methods that allow websites to encrypt and decrypt messages intended for Web3 users.

For now, these decryption requests each require user confirmation, so it’s mostly ideal for decrypting infrequent, important messages, like emails. Later on we have an opportunity to make this same decryption strategy available with the permissions system described above.

You can read more about the new decryption API here.

Removing Friction From Your App Onboarding

In the past, we’ve received feedback from developers that on-boarding users is a source friction in their funnel.

We want to make it as easy as possible for your users to interact with your application through their MetaMask account and make sure users who land on your site stay on your site.

To help, we’ve created a new onboarding library which enables applications to implement their own connect button. It allows a user to seamlessly land on your site, install MetaMask, and be automatically redirected back to your application so they can continue their journey. Learn more about using our new on-boarding library here.

Developers: Introducing the ERC-1193 Provider API

The Ethereum provider just got a non-breaking upgrade! This EIP formalizes a JavaScript Ethereum Provider API for consistency across clients and applications.

The Provider’s interface is designed to be minimal, preferring that features are introduced in the API layer (see e.g. eth_requestAccounts) and agnostic of transport and RPC protocols.

Instead of using the old ethereum.sendAsync(options, callback) pattern everywhere, you now get a nice and simple const result = await ethereum.request({ method, params }).

It’s designed to be ergonomic and extensible API, friendlier to use than sending a full RPC object for each request, and perhaps best of all, it supports returning Promises and registering subscriptions.

Read more about it here.

Upcoming changes for web3 site developers

If you’re a developer that relies on the window.web3 object injected by MetaMask, you’ll need to implement changes before we remove the injected web3 object or your site will break. We recommend migrating to using window.ethereum or ethers.js, ASAP. We will announce a deprecation date as soon as we’re willing to commit to a firm date.

If you’re a developer that only relies on your own version of ethers or web3, you won’t need to take any action — just keep it up to date. If you are choosing a new convenience library, we recommend ethers.

Read our documentation to learn more. Our docs site has recently been revamped, thanks in part to amazing contributions from the MetaMask community (shout out to Austin Akers!).

Cutting Edge Security

LavaMoat is Live and in Production!

Nothing is more important than your security at MetaMask. Our new LavaMoat tool helps raise the bar of security for nearly any JavaScript project.

MetaMask is a web and JavaScript-based wallet. JavaScript often gets a bad reputation because untrusted code is often pulled into production environments. For a wallet, this is more dangerous than ever.

LavaMoat is a set of tools we’re building that uses Secure EcmaScript to confine every third-party dependency in a piece of JavaScript code at build time. We hope to eventually confine every dependency in our entire wallet, greatly protecting us and our users from the category of “supply chain attacks”.

We’re happy to announce that we now have the first LavaMoat protected process live and in production! We now have our ropsten test-network faucet secured with this new build security system!

You can:

That’s Version 8!

We hope you enjoy this new release of MetaMask. Learn more about MetaMask or download it at metamask.io. If you’ve spotted a bug or have other feedback, please drop an email to our support team.

--

--

Dan Finlay
MetaMask

Decentralized web developer at ConsenSys working on MetaMask, with a background in comedy, writing, and teaching.