# metamask/metamask-extension

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/metamask-metamask-extension).**

13,147 stars · 5,549 forks · TypeScript · NOASSERTION

## Links

- GitHub: https://github.com/MetaMask/metamask-extension
- Homepage: https://metamask.io
- awesome-repositories: https://awesome-repositories.com/repository/metamask-metamask-extension.md

## Topics

`brave` `chrome` `dapp` `dapp-developers` `edge` `ethereum` `extension` `firefox` `opera`

## Description

This project is an Ethereum wallet browser extension that serves as a blockchain identity manager and a bridge between decentralized applications and the Ethereum blockchain. It functions as a multi-network blockchain wallet, allowing users to manage digital keys and interact with various Ethereum-compatible network ecosystems.

The software provides a provider interface for signing transactions and reading chain data. It enables users to switch between different blockchain networks and maintain secure identities to authenticate on decentralized networks.

The system covers the management of wallet accounts and the tracking of account balances. It also includes capabilities for configuring network connectivity and integrating custom plugins to extend wallet functionality.

## Tags

### Security & Cryptography

- [Cryptocurrency Wallets](https://awesome-repositories.com/f/security-cryptography/cryptocurrency-wallets.md) — Provides a comprehensive system for storing digital keys and tracking account balances on the Ethereum blockchain.
- [Encrypted Storage](https://awesome-repositories.com/f/security-cryptography/encrypted-storage.md) — Protects private keys and seeds using password-based encryption within secure browser storage.
- [Identity & Key Management](https://awesome-repositories.com/f/security-cryptography/identity-key-management.md) — Securely manages cryptographic identities and private keys used for signing transactions on decentralized networks. ([source](https://github.com/metamask/metamask-extension#readme))
- [Wallet Provider Connectors](https://awesome-repositories.com/f/security-cryptography/identity-provider-connections/wallet-provider-connectors.md) — Provides a secure interface that injects a provider object into the browser for decentralized applications to interact with the wallet.
- [User Account Management](https://awesome-repositories.com/f/security-cryptography/user-account-management.md) — Tracks active wallet accounts and monitors current balances to authorize blockchain transactions. ([source](https://metamask.github.io/test-dapp/))
- [User Identity Management](https://awesome-repositories.com/f/security-cryptography/user-identity-management.md) — Provides a secure interface for managing user digital identities and signing blockchain transactions.

### DevOps & Infrastructure

- [Blockchain Network Connections](https://awesome-repositories.com/f/devops-infrastructure/cloud-infrastructure/networking-connectivity/blockchain-network-connections.md) — Allows users to configure and switch between different blockchain network environments like mainnet and testnets. ([source](https://github.com/metamask/metamask-extension#readme))

### Networking & Communication

- [Blockchain Provider Interfaces](https://awesome-repositories.com/f/networking-communication/connection-management/blockchain-provider-interfaces.md) — Provides an abstracted provider interface to manage communication and request-response cycles with blockchain nodes. ([source](https://metamask.github.io/test-dapp/))
- [JSON-RPC Interfaces](https://awesome-repositories.com/f/networking-communication/distributed-systems-p2p/distributed-computing/remote-procedure-call-frameworks/json-rpc-interfaces.md) — Utilizes a JSON-RPC communication layer to send standardized requests and receive responses from blockchain nodes.

### User Interface & Experience

- [Decentralized Application Interfaces](https://awesome-repositories.com/f/user-interface-experience/decentralized-application-interfaces.md) — Acts as a bridge connecting the browser to blockchain networks to enable interaction with decentralized applications.
- [Event-Driven State Synchronizers](https://awesome-repositories.com/f/user-interface-experience/event-driven-state-managers/event-driven-state-synchronizers.md) — Implements a system to propagate blockchain network changes and connection states to the user interface via reactive events.
- [State Management Providers](https://awesome-repositories.com/f/user-interface-experience/state-management-providers.md) — Uses a centralized provider pattern to distribute global wallet state and network connectivity across the application components.

### Software Engineering & Architecture

- [Plugin Extenders](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/plugin-architectures/developer-authoring-interfaces/custom-module-implementations/module-functionality-extenders/plugin-extenders.md) — Supports loading custom external libraries at runtime to extend the wallet's core functionality and user interface. ([source](https://github.com/metamask/metamask-extension#readme))
- [Hook-Based Plugin Systems](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/plugin-module-systems/modular-plugin-architectures/plugin-based-architectures/hook-based-plugin-systems.md) — Employs a hook-based plugin system allowing the addition of new wallet capabilities and UI tools via modular extensions.
