MetaMask is a mobile wallet that provides easy access to websites that use the Ethereum blockchain.
For up to the minute news, follow our Twitter or Medium pages.
To learn how to develop MetaMask-compatible applications, visit our Developer Docs.
To learn how to contribute to the MetaMask codebase, visit our Contributor Docs.
Before running the app, make sure your development environment has all the required tools. Several of these tools (ie Node and Ruby) may require specific versions in order to successfully build the app.
Setup your development environment
Clone the project
git clone git@github.com:MetaMask/metamask-mobile.git && \
cd metamask-mobile
MetaMask uses Firebase Cloud Messaging (FCM) to enable app communications. To integrate FCM, you’ll need configuration files for both iOS and Android platforms.
.js.env
file from 1Password, ask around for the correct vault. This file contains the GOOGLE_SERVICES_B64_ANDROID
and GOOGLE_SERVICES_B64_IOS
secrets that will be used to generate the relevant configuration files for IOS/Android.As an external contributor, you need to provide your own Firebase project configuration files:
GoogleService-Info.plist
(iOS)google-services.json
(Android)io.metamask
(IMPORTANT). google-services.json
and GoogleService-Info.plist
files in:android/app/google-services.json
(for Android)ios/GoogleServices/GoogleService-Info.plist
directory (for iOS)# Generate Android Base64 Version of Google Services
export GOOGLE_SERVICES_B64_ANDROID="$(base64 -w0 -i ./android/app/google-services.json)" && echo "export GOOGLE_SERVICES_B64_ANDROID=\"$GOOGLE_SERVICES_B64_ANDROID\"" | tee -a .js.env
# Generate IOS Base64 Version of Google Services
export GOOGLE_SERVICES_B64_IOS="$(base64 -w0 -i ./ios/GoogleServices/GoogleService-Info-example.plist)" && echo "export GOOGLE_SERVICES_B64_IOS=\"$GOOGLE_SERVICES_B64_IOS\"" | tee -a .js.env
[!CAUTION]
In case you don't provide your own Firebase project config file or run the steps above, you will face the error
No matching client found for package name 'io.metamask'
.
In case of any doubt, please follow the instructions in the link below to get your Firebase project config file. Firebase Project Quickstart
yarn setup
Not the usual install command, this will run scripts and a lengthy postinstall flow
Run Metro bundler
yarn watch
Like a local server for the app
Run on a iOS device
yarn start:ios
Run on an Android device
yarn start:android