whatisgithub

What is metamask-extension?

metamask/metamask-extension — explained in plain English

Analysis updated 2026-06-24

13,120TypeScriptAudience · developerComplexity · 4/5Setup · hard

In one sentence

MetaMask is the source code for the MetaMask browser extension, an Ethereum wallet that stores crypto, connects to decentralized apps, and lets you approve blockchain transactions directly from Chrome or Firefox.

Mindmap

mindmap
  root((repo))
    What it does
      Ethereum wallet
      Transaction signing
      Dapp connector
    Features
      Crypto storage
      Approval prompts
      Private key safety
    Tech
      TypeScript
      Node 24
      Yarn Corepack
    Supported Browsers
      Chrome
      Firefox
      Chromium based
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Build and run a local development version of MetaMask to contribute a bug fix or new feature

USE CASE 2

Understand how a browser wallet communicates with decentralized apps by reading the extension source code

USE CASE 3

Fork MetaMask as a starting point for building a custom Ethereum wallet browser extension

What is it built with?

TypeScriptJavaScriptNode.jsYarnReact

How does it compare?

metamask/metamask-extensionjuice-shop/juice-shoptypestrong/ts-node
Stars13,12013,12013,134
LanguageTypeScriptTypeScriptTypeScript
Setup difficultyhardeasyeasy
Complexity4/52/52/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Requires Node 24, Yarn via Corepack, and an Infura API key to build and run locally.

So what is it?

MetaMask is a browser extension that acts as a wallet for Ethereum and other compatible blockchains. You install it in Chrome, Firefox, or another Chromium-based browser, and it gives you a way to store cryptocurrency, connect to decentralized applications (dapps), and sign transactions directly from your browser without going through a centralized exchange. When you visit a dapp, the website can ask MetaMask to show a prompt asking you to approve a transaction or sign a message. MetaMask sits between the website and the blockchain: the website requests an action, MetaMask shows you what is being asked, and you decide whether to approve or reject. Your private keys stay in the extension and are never sent to the website. This repository is the source code for that browser extension. It is written in TypeScript and JavaScript, built using Node.js and Yarn, and compiled into a distributable package you load into your browser as an unpacked extension. The README covers how to build it locally or spin up a development environment in GitHub Codespaces. Building requires Node 24, a Yarn setup via Corepack, and an Infura API key (Infura is a service that provides access to Ethereum nodes without running your own). The official release is available from metamask.io and the browser extension stores. This GitHub repository is where contributors submit bug fixes and new features. The project has separate documentation sites for end users, developers building dapps, and contributors working on the extension itself.

Copy-paste prompts

Prompt 1
Walk me through setting up a local build of the MetaMask browser extension using Node 24 and Yarn via Corepack, what commands do I run and how do I load it as an unpacked extension in Chrome?
Prompt 2
How do I get an Infura API key and configure it for a local MetaMask development build?
Prompt 3
I want to add support for a new blockchain network in the MetaMask extension, which source files do I need to change?
Prompt 4
How does MetaMask keep private keys safe inside the browser extension and prevent websites from accessing them directly?

Frequently asked questions

What is metamask-extension?

MetaMask is the source code for the MetaMask browser extension, an Ethereum wallet that stores crypto, connects to decentralized apps, and lets you approve blockchain transactions directly from Chrome or Firefox.

What language is metamask-extension written in?

Mainly TypeScript. The stack also includes TypeScript, JavaScript, Node.js.

How hard is metamask-extension to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is metamask-extension for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.