Overview
This guide explains the practical flows for using WalletConnect with MetaMask on mobile and desktop. You'll get step-by-step pairing instructions, common troubleshooting fixes (for issues like "wallet connect not showing metamask"), and security tips I use in day-to-day DeFi interactions. I use both MetaMask mobile and the browser extension daily, so these notes come from hands-on testing and real mistakes (yes, I’ve approved an allowance by accident — more on revoking below).
People often search phrases like "wallet connect metamask" or "walletconnect metamask" when they want to link a desktop dApp to their phone. If you type "wallet connect metamask desktop" you’re usually asking whether WalletConnect works with the extension — the short answer is: the desktop extension is the injected provider; WalletConnect is primarily a bridge to mobile wallets.
How WalletConnect works
At a high level WalletConnect creates an encrypted session between a dApp and a wallet. The dApp presents a QR code or a mobile deep link. The wallet scans the QR or opens the deep link and you approve the connection on-device. After approval the dApp can ask the wallet to provide account addresses, sign messages, or send transactions.
When you scan a QR code the wallet and the dApp exchange public keys and metadata over an encrypted channel, and then the dApp can create RPC-style requests that are relayed through a bridge to the wallet which shows the actions for you to approve — the private keys never leave your device. WalletConnect v2 adds more flexible multi-chain session support and a refined pairing model (so if a dApp uses v2 you may need a recent wallet build).
Mobile flow: MetaMask mobile + WalletConnect (step-by-step)
This is the most common real-world flow: you’re on a desktop dApp and want to sign with MetaMask on your phone.
- On the dApp (desktop) click Connect and choose WalletConnect — a QR code appears.
- Open MetaMask mobile and use the QR/WalletConnect option to scan the code. (App wording can change by version.)
- Confirm the pairing in MetaMask mobile. Pick which account to expose and approve the connection.
- Back on the dApp the account should appear; proceed with transactions and approve them on your phone.
If you’re on mobile already, the dApp may present a deep link instead of a QR code — tap it to open MetaMask and approve. In my experience the scan-and-approve step takes less than 15 seconds when both devices have stable network connections. And if it doesn't show up, check that the MetaMask mobile app is up to date.

alt: "Desktop dApp QR code and MetaMask mobile scan"
Desktop flow: MetaMask extension vs WalletConnect
On desktop the more seamless method is to use the MetaMask browser extension (the injected provider). Click Connect → MetaMask in the dApp's modal and the extension popup will ask you to approve accounts and requests.
What about WalletConnect on desktop? If a dApp only offers WalletConnect, it will show a QR code expecting a mobile wallet to scan. The MetaMask extension isn't typically listed as a WalletConnect client, so you may encounter the message "wallet connect not showing metamask" — that’s usually because the dApp expects a WalletConnect-compatible client (the mobile app). In that case either scan with MetaMask mobile or choose a direct MetaMask connect option when the dApp supports it.
Quick comparison table
| Feature |
MetaMask mobile (WalletConnect client) |
MetaMask extension (desktop) |
| Primary connection method |
QR / deep link via WalletConnect |
Injected provider (window.ethereum) |
| Best when |
Signing on phone; bridging desktop dApp |
Working on desktop without phone |
| Can scan QR? |
Yes |
No (use phone) |
| Session persistence |
Persisting WalletConnect session on mobile |
Browser-based sessions tied to extension |
| Typical use case |
Mobile approvals, multisite pairing |
Fast in-browser dApp interactions |
| When WalletConnect needed |
dApp is WalletConnect-only |
Not required if dApp supports injected provider |
Common issues & troubleshooting
- wallet connect not showing metamask: If MetaMask doesn’t appear in a WalletConnect list, choose the injected MetaMask option on the dApp (if available) or scan the QR with MetaMask mobile.
- Pairing timeouts: Close the QR modal and reopen, or refresh the dApp. Network flakiness on mobile is a frequent cause.
- Session stuck or broken: Disconnect the session from MetaMask mobile (Connected sites or WalletConnect sessions) and reconnect.
- v2 mismatches: Search results like "wallet connect v2 metamask" often indicate one side needs an update — update the dApp or the mobile app and retry.
If these steps don’t help, check troubleshooting-dapp-connections and the WalletConnect-specific notes at connect-walletconnect.
Security considerations
Treat every WalletConnect session like a permission. The dApp can request signature actions; those signatures can be very powerful (e.g., token approvals). I once approved an unlimited allowance through a quick signing flow — it was reversible but costly. So: review approval requests line-by-line, and use the token-approvals-revoke guide if you need to undo a permission.
Other security steps I recommend:
- Verify the exact dApp domain before approving. Phishing sites mimic interfaces to trick you into signing.
- Revoke old WalletConnect sessions in MetaMask mobile regularly.
- Keep your seed phrase offline and use hardware wallets for large balances (see backup-recovery-seed).
Advanced tips (WalletConnect v2, L2s, gas)
- WalletConnect v2 supports multiple chain namespaces in a single session. If a dApp requires v2 and you’re running an older wallet build, pairing may fail — update the mobile app.
- Layer 2 networks: the wallet must have the target network configured. If a dApp sends a transaction for an L2 your wallet doesn’t recognize, MetaMask will present a prompt to switch or add the network (approve only trusted requests). See add-custom-network for common L2 steps.
- Gas fees: MetaMask shows EIP-1559 fields or legacy gas, and when using WalletConnect the transaction preview will include gas details — inspect them before signing. But keep in mind that different networks calculate priority fees differently.
Who this flow is best for
Best for: mobile-first users who want to approve desktop dApp actions from their phone, or anyone who prefers signing on a separate device.
Look elsewhere if: you need cold storage for large funds (use a hardware wallet) or you want a purely desktop-only signing workflow without a phone.
FAQ
Q: Is it safe to keep crypto in a hot wallet?
A: Hot wallets are convenient for DeFi and swaps but are more exposed than hardware wallets. I use hot wallets for daily activity and move larger balances to hardware or multisig solutions. See backup-recovery-seed for recovery steps.
Q: How do I revoke token approvals?
A: Use MetaMask’s approval tools or a trusted on-chain revoke UI to remove allowances. Follow the step-by-step at token-approvals-revoke.
Q: What happens if I lose my phone?
A: Losing a device increases risk but doesn’t give instant access to funds without your seed phrase or lock credentials. Restore your wallet on a new device with your seed phrase, then revoke old sessions and change associated account settings. See lost-phone-recovery and backup-recovery.
Conclusion & next steps
Which flow is right for you? Use WalletConnect with MetaMask mobile when you want phone-based approvals for desktop dApps; use the MetaMask extension for seamless in-browser experience. Both have trade-offs between convenience and security. If you need step-by-step setup, follow the mobile install or extension setup guides: install-metamask-mobile-app | install-metamask-extension. For deeper WalletConnect specifics check walletconnect-guide and walletconnect-mobile-linking.
If you hit a specific error like "wallet connect not showing metamask," start with the troubleshooting pages listed above and then come back to this guide to verify session and approval hygiene. Keep your seed phrase safe, review approvals often, and sign only what you expect.