Quick overview
WalletConnect is a protocol that lets a mobile software wallet (like MetaMask Mobile) talk to a web dApp without the dApp needing an injected provider. You can connect from your phone to a desktop dApp by scanning a QR code, or link a mobile dApp to your wallet via a deep link. I use WalletConnect regularly to keep my private keys on my phone while interacting with desktop DeFi apps. Short and practical: it keeps the signing on your device while the dApp runs elsewhere.
How WalletConnect works with MetaMask Mobile
At a high level WalletConnect establishes an encrypted session between the dApp and your wallet. The dApp asks for a connection (via QR or deep link), you approve it on MetaMask Mobile, and a persistent session is created so the dApp can request signatures or transactions. The wallet signs locally. That means your private keys never leave your phone, but a connected session can persist until you disconnect it.
A couple of quick technical points (because I like understanding why things behave a certain way): WalletConnect uses a relay/bridge to pass encrypted JSON-RPC messages between the dApp and the wallet. The dApp will request chain access and account addresses, and can later request transactions or signatures. MetaMask Mobile prompts you for every action. Read each prompt carefully.
Step-by-step: Connect using WalletConnect (How to)
Below are two common flows. Use the QR flow when the dApp is on desktop. Use deep links when you’re connecting between two mobile apps.
Desktop dApp → Mobile wallet (QR code)
- On the desktop dApp, click Connect wallet and choose WalletConnect.
- A QR code appears. (Screenshot: ![QR code scan screen — placeholder])
- Open MetaMask Mobile, tap the bottom menu (or the app menu) and select WalletConnect / Scan QR code.
- Scan the QR code. MetaMask Mobile shows a connection request with the dApp name and requested account.
- Review the dApp origin and the requested chain (Ethereum, an L2, or another EVM-compatible chain). Approve to connect.
- Back on the desktop dApp, you should now be connected and able to request signatures or transactions.
Mobile dApp → Mobile wallet (deep link)
- On the dApp’s mobile site, tap Connect and choose WalletConnect.
- The page shows a “Connect with WalletConnect” button. Tapping it launches MetaMask Mobile via deep link.
- MetaMask Mobile opens with a connection request; review the details and approve.
- The dApp and wallet exchange session info and you’re connected.
(And yes — the exact menu labels can change between app versions. If you don’t see "WalletConnect" in the main menu, try the app’s connect or browser screens.)
Manage sessions & security tips
Once connected, the dApp has an open session. That session allows the dApp to request operations until you disconnect it. Here’s what I do every time:
- Verify the dApp origin: check the URL or domain the connection lists. Look for misspellings and subdomains that mimic legit sites. (Phishing is real — see phishing alerts.)
- Approve minimal token allowances. Don’t accept unlimited allowances unless you understand why the dApp needs it.
- Use a small test transaction first when trying a new dApp.
- Review and revoke sessions regularly via Manage connected sites (see Manage connected sites) and revoke token approvals via Revoke approvals.
- Backup your seed phrase in a safe place (see seed phrase backup and recovery).
A real mistake I made years ago: I approved a large allowance to a shady contract during a rushed test. I removed it afterward, but it taught me to check the approval scope every time.
Practical DeFi examples and flow notes
How this looks in practice for daily DeFi tasks:
- Swap: Connect to a DEX on your laptop via WalletConnect, approve a small allowance for the token you’ll swap, confirm the swap in MetaMask Mobile, and watch gas fees. If you swap daily, the whole flow saves time vs moving funds to a custodial exchange. (See how to swap and swap gas optimization for details.)
- Lending/borrowing: Lend assets by connecting with WalletConnect then approving the specific contract calls. Check the chain: a mistake here can send transactions to the wrong network.
- Staking/liquid staking: Many staking portals ask for approvals and a transaction that locks tokens. Read the transaction preview carefully before signing.
A tip: If a dApp asks to change the chain, MetaMask Mobile will present a chain switch request. Confirm that the requested chain matches the dApp's UI and that you trust the site.
Troubleshooting common WalletConnect issues
- QR won’t scan: check camera permissions and lighting. Try taking a screenshot and import it into the scanner if your wallet supports it.
- Deep link opens wrong app: ensure MetaMask Mobile is updated and the dApp supports WalletConnect; alternative wallets might register the same protocol handlers.
- Chain mismatch errors: the dApp and wallet must be on compatible chains. Add a custom RPC in MetaMask Mobile if necessary (careful — only use trusted RPC endpoints).
- Session stuck or dApp still listed after disconnect: clear the session in MetaMask Mobile and in the dApp. If unsure, revoke approvals using Revoke approvals.
If you see unexpected signature requests, reject them and check the connection origin. Use transaction simulation tools if available (see tx simulation).
Quick comparison: WalletConnect vs in-app browser vs extension
| Method |
Best for |
Requires |
Notes |
| WalletConnect |
Connecting mobile wallet to desktop dApps or mobile dApps via deep link |
QR or deep link |
Keeps signing on device; session persists until disconnected |
| In-app browser |
Using dApps directly on phone without QR scanning |
Built-in browser in the wallet |
Fast for mobile-first flows; no WalletConnect pairing needed |
| Browser extension (desktop) |
Desktop-first workflows with injected provider |
Browser extension |
Seamless on desktop web; not an option for keeping keys on phone |
(But remember: each method has trade-offs between convenience and attack surface.)
Who should use WalletConnect with MetaMask Mobile?
Who this method suits:
- Users who want to keep private keys on their phone but interact with desktop dApps.
- People who use multiple devices and prefer to sign on a single mobile wallet.
Who might look elsewhere:
- Users who prefer a hardware wallet for high-value holdings (see hardware-wallet-integration).
- People who only use phone-native dApps and prefer the in-app browser for speed.
FAQ
Q: Is it safe to keep crypto in a hot wallet?
A: Hot wallets are convenient but expose keys to the internet. I believe they’re fine for everyday DeFi activity if you follow good practices: seed phrase backup, small spendable balances, and regular permission reviews. For large holdings, consider hardware or cold storage.
Q: How do I revoke token approvals made via WalletConnect?
A: Use the revoke page and service tools linked on Revoke approvals. Revoke the allowance from the specific spender address, then reconnect if needed.
Q: What happens if I lose my phone after connecting sessions?
A: If your phone is lost, anyone with access to it and your unlocked wallet could sign transactions. Immediately use your seed phrase to restore on a new device and revoke approvals where possible (see lost phone and seed phrase backup and recovery).
Conclusion and next steps (CTA)
WalletConnect MetaMask (and specifically walletconnect metamask mobile) gives you a flexible way to keep private keys on your phone while interacting with desktop and mobile dApps. Try the flow on a small test swap or read our how to swap guide before committing larger amounts. And if you’re testing a new dApp, connect with a fresh account or small balance first.
Further reading: manage connected sites (Manage connected sites), revoke approvals (Revoke approvals), and mobile setup details (MetaMask Mobile guide).
If you want a step checklist to follow on first connect, I can provide a printable one — would that help?