MetaMask offers three common ways to connect to a dApp: the injected provider (browser extension), WalletConnect sessions (QR/deep-link handshake), and the mobile in-app browser (provider injected inside the MetaMask mobile app). Each method has trade-offs in latency, UX, and security.
In my experience the injected provider feels fastest for day-to-day DeFi. And yes, I've used WalletConnect dozens of times when switching between laptop and phone.
This covers the three main flows. These step-by-step instructions map directly to the actions the dApp asks for.
Tip: before hitting Connect, check the domain in your browser address bar. A spoofed domain is a common phishing technique (see phishing-address-poisoning).
But be careful when scanning QR codes from unknown pages.
This flow is usually most frictionless for mobile-first games and marketplaces.
What does a safe and efficient session look like? Follow these rules:
In my experience splitting accounts by purpose (trading, staking, NFTs) reduces accidental approvals. And that saved me once when I accidentally approved a test contract.
When a dApp initiates a tx, MetaMask shows a confirmation screen. Here's how to verify it.
Speed up / cancel (if the tx is pending): open Activity, select the pending tx, and use Speed Up (resend with higher priority fee) or Cancel (replace with a zero-value tx to the same nonce). This resubmission uses the same nonce and requires a higher fee to be mined first.
If a signature request appears without a clear action (e.g., sign message), pause and verify why the dApp needs it before confirming.
CryptoKitties and similar older dApps expect a standard wallet connection on Ethereum Mainnet. Here's a short checklist:
If the site fails to detect your wallet, try the in-app browser or WalletConnect pairing as fallback. For more on mobile setup, see metamask-mobile-ios-android.
I believe routine maintenance—revoking old approvals weekly—reduces attack surface considerably.
| Method | Typical latency | Keys exposed to dApp | Best for | Notes |
|---|---|---|---|---|
| Injected provider (extension) | < 2s on desktop | No — keys stay local | Fast DeFi interactions, hardware integrations | Direct, supports hardware via extension |
| WalletConnect MetaMask | 2–10s handshake | No — session keys only | Desktop dApps with mobile signing | Relies on bridge server for handshake |
| Mobile in-app browser MetaMask | <2s inside app | No — provider injected | Mobile-first dApps, games | Seamless in-app UX |
| Hardware wallet via MetaMask | Depends on device | No — signs on device | Large-value tx confirmation | Adds security cost to UX |
If problems persist, a reset or reinstall sometimes helps (see reset-delete-and-reinstall).
Best fit:
Who should look elsewhere:
Q: Is it safe to keep crypto in a hot wallet? A: Hot wallets are designed for daily use. They trade off convenience for increased exposure vs offline storage. Keep only operational balances in a hot wallet and move long-term holdings to hardware or cold storage. See security-checklist.
Q: How do I revoke token approvals? A: Use the token allowance UI in MetaMask or a third-party revocation tool. See token-allowances-and-revoke for a step-by-step.
Q: What happens if I lose my phone? A: Your wallet is protected by your seed phrase. Restore on a new device using the seed phrase (see seed-phrase-backup-recovery). If you used cloud backup, understand the additional risks.
Q: How do I accept connection request in MetaMask? A: See the earlier step-by-step section for injected provider, WalletConnect, and mobile browser flows.
Connecting MetaMask to dApps is straightforward once you understand the three main flows: injected provider, WalletConnect, and the mobile in-app browser. Use small test transactions, check domains, and limit token allowances. But don't forget to back up your seed phrase and consider hardware for large balances.
Ready to try it? If you need setup help, start with install-metamask-chrome-extension or metamask-mobile-ios-android. For WalletConnect specifics, see connect-to-dapps-walletconnect and walletconnect-guide.