About this project
MetaMask Mobile is the mobile client of the MetaMask wallet, providing access to websites and applications that use the Ethereum blockchain. It is a React Native application distributed for iOS and Android, with the repository containing the full source, build tooling and developer documentation.
What it does
- Acts as a mobile wallet and in-app browser for Ethereum-based sites and dapps.
- Connects to blockchain networks through an Infura project ID, which is required for the app to reach networks.
- Uses Firebase Cloud Messaging for app communications, requiring platform configuration files for iOS and Android.
Development workflows
- Expo path (recommended): developers avoid compiling native code by downloading a precompiled development build and running the JavaScript bundler. Setup uses Node, Yarn v4 and Watchman; commands include `yarn setup:expo`, `yarn watch`, and helper scripts such as `yarn install:ios:dev` and `yarn install:android:dev` that fetch builds from GitHub Actions artifacts, with caching and `--force-download` options.
- Native path: needed when modifying native code or adding libraries with native components. It requires a full native environment setup, `yarn setup`, then `yarn watch` plus `yarn start:ios` or `yarn start:android`.
Configuration notes
- Internal contributors obtain `.js.env` from 1Password; external contributors create an Infura API key and rename `.js.env.example`.
- Firebase setup differs for internal and external contributors; external users create their own Firebase project with package name `io.metamask` and generate base64 environment variables for the service files.
Tooling and quality
- Git hooks via Husky are opt-in (`yarn git:hooks:install`), running Prettier and ESLint through lint-staged on commit, with documented ways to skip them.
- AI agent skills are synced from shared MetaMask skills repositories into local-only paths; `yarn install` syncs a base set and `yarn skills` syncs all domains, with optional local configuration.
- Documentation covers architecture, animations, environment setup, troubleshooting, component view testing, E2E testing, debugging, performance, release build profiling, Storybook and internal Android distribution.
This repository is aimed at developers contributing to or building on the MetaMask mobile client rather than at end users installing the app.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.