crypto wallet
A step-by-step plan for white-labelling MetaMask: copying its code and rebranding it as a client's own crypto wallet, with their name, logo, colours and blockchain, published on the Chrome Web Store. About 12 weeks, versus many months building a wallet from scratch.
Why not code your own?
The trade-off: you work within MetaMask's licence and replace its backend services (both covered below).
Updated October 2026 for MetaMask's current licensing (ConsenSys licence, not MIT) and the latest build steps, checked against the MetaMask repo's main branch. Timings are estimates.
Click any item to expand for explanation. MetaMask → rebrand → ship.
Head to github.com/MetaMask/metamask-extension and fork it into your own GitHub account.
Clone it locally, then: run nvm use (it needs the Node version in .nvmrc, currently Node 24), corepack enable (the project uses Yarn 4, managed per project), copy .metamaskrc.dist to .metamaskrc and add your own INFURA_PROJECT_ID (required). Then yarn install && yarn start spins up a development build you can load as an unpacked extension in Chrome via chrome://extensions → Load unpacked.
Verify you can: create a wallet, send a transaction on testnet, and connect to a dApp like Uniswap. If all three work, your baseline is solid.
This is the most visible phase. Start with a global search for "MetaMask" across the codebase to find every brand mention:
Key files to change:
The fox mascot is a separate npm package (@metamask/logo) that renders a 3D WebGL animated fox. Run yarn remove @metamask/logo then replace the fox component in each file with a plain <img> pointing to the client's logo SVG.
This is where you tailor the wallet to the client's specific blockchain setup. Most clients will be on Ethereum mainnet, a Layer 2 (Polygon, Base, Arbitrum), or occasionally a custom chain.
What to configure:
This is the phase where the wallet becomes genuinely theirs rather than just a reskin. Common client requests:
Before anything goes near mainnet, test everything on a public testnet. For Ethereum use Sepolia, for Polygon use Amoy (Mumbai was shut down in 2024). Get free test ETH from a faucet.
Test checklist:
yarn build:test). yarn start runs without LavaMoat, MetaMask's supply-chain security sandbox, so a dev build passing is not enoughBuild the production package with yarn dist, which creates the production build and the zip you upload to the Chrome Web Store.
What Google requires for a wallet extension:
Once Google approves, the extension goes live on the Chrome Web Store. Users can install it directly or you can distribute the install link to the client's user base.
Handover deliverables to prepare for the client:
Visual assets
images/, so replace every size it lists, not just four.Colour and typography
Text and strings
__MSG_appName__ / __MSG_appDescription__, i.e. appName and appDescription in app/_locales/en/messages.json (and each language file you keep). It also hard-codes "default_title": "MetaMask" (the toolbar tooltip) and "author": "https://metamask.io": change both. The version comes from package.json; reset it for the client's first release.Config and API keys
SEGMENT_WRITE_KEY) rather than being hard-coded. Either point them at the client's own accounts or turn them off for a leaner, more private wallet, which is easier and what most clients prefer.METAMASK_RAMP_API_CONTENT_BASE_URL in builds.yml points at MetaMask's servers), not swappable partner keys. A white-label fork has to audit this and either remove the Buy feature or replace it. Our recommendation is to integrate a provider directly (Transak, MoonPay, Ramp and others have partner programmes), but that's a design choice, not something the MetaMask code sets up for you.*.api.cx.metamask.io URLs in .metamaskrc.dist), builds.yml wires in authentication, storage, notifications, security alerts, signature insights, compliance checks, CDNs and deep-link infrastructure. A commercial fork shouldn't depend on services MetaMask can rate-limit or switch off. Inventory every service the client's feature set touches, then disable it, replace it, or cover it in an agreement with ConsenSys. Do this in week one: it decides how big Phase 4 really is.Legal and compliance
Security and release