- Write the seed phrase by hand on paper. Keep multiple offline copies in separate secure locations. (No photos.)
- Consider a metal backup if you live in a flood/fire-prone area. Metal lasts. Paper doesn’t.
- Avoid cloud backups (iCloud, Google Drive) for your main seed phrase — they’re convenient but expose you to account compromise.
- If you suspect compromise, create a new wallet and transfer funds immediately.
See the step-by-step recovery process at backup-and-recovery-seed-phrase and recover-lost-wallets.
How to protect MetaMask with Ledger/Trezor (hardware integration)
Using a hardware wallet with MetaMask changes the threat model. The private keys never leave the device, and transactions must be approved on the hardware device itself. That prevents browser malware from signing transactions silently.
How I set this up when testing (replicate these steps):
- Plug in the hardware device and unlock it.
- In MetaMask choose “Connect hardware wallet” and follow the on-screen flow.
- Verify the receiving address on the hardware device screen before sending funds.
For a step-by-step guide see ledger-step-by-step-integration and integrate-hardware-ledger-trezor.
Advantages: private keys stay offline, phishing via signature requests is reduced because you must approve on-device. Disadvantages: less convenient for quick swaps, and setup mistakes (wrong firmware or blind-signing settings) can be risky.
Phishing protection MetaMask: detect compromise and recover
How to know if MetaMask wallet is compromised? Look for:
- Outgoing transactions you didn’t initiate. Check your address on a block explorer.
- New token approvals you didn’t sign. (Some phishing farms ask for unlimited allowances.)
- Strange signature requests that come as soon as you open a site.
If you spot compromise: lock the wallet, disconnect from sites (disconnect-and-remove-connected-sites), revoke approvals, and move funds to a fresh wallet (preferably one secured with a hardware device).
Practical tip: before connecting to any new dApp, open it in an incognito window and look for typos in the URL and unusual prompts. (I test this every week.)

Token approvals and revoke workflow
Token approvals are a major attack vector. An app asking for unlimited token allowance can later drain your tokens if the smart contract is malicious or becomes malicious.
Step-by-step revoke process I use and recommend:
- Use a token approval scanner (or the UI in MetaMask where available) to list allowances.
- Revoke unwanted or large approvals.
- For frequent-use dApps, set specific allowances when possible, not infinite.
See how I test revokes and audit approvals in token-approvals-and-revoke.
Mobile vs. extension: device-level risks and lost-phone recovery
Mobile is where most people interact with DeFi. It’s convenient. It also changes the risk picture.
- Mobile app: easier to use on the go, supports WalletConnect for hardware or extension-less dApps, and often has biometric lock. But losing the phone means you must rely on your seed phrase to recover (see lost-phone-reset-recovery).
- Browser extension: more comfortable for desktop DeFi sessions, but the browser itself can be attacked by malicious extensions or phishing tabs.
Sync your mobile and desktop carefully. I sync only accounts I actively use. For accounts holding larger amounts I keep them hardware-only and off the synced set. More on mobile setup: install-metamask-mobile and sync-mobile-desktop.
Advanced options: account abstraction, session keys, smart contract wallets
Smart contract wallets and account abstraction can improve daily security by allowing session keys, spending limits, and gasless UX. They shift some trust to the contract, so review the contract’s code or audits before use.
If you use session keys, limit their scope and duration. Use them for single dApp sessions rather than permanent access.
Read about smart wallets and account abstraction at account-abstraction-and-smart-wallets.
How I tested these steps (methodology) — replicate my tests
Transparency: I tested on both testnets (Goerli) and mainnet with micro-amounts (<0.01 ETH) for real flows. Methods included:
- Creating fresh MetaMask installs (extension and mobile) and recording the onboarding steps.
- Connecting a hardware device and confirming that private keys never left the device by observing the signing prompts on-device.
- Issuing token approvals and then revoking them, verifying changes via a block explorer transaction history.
- Simulating phishing: I opened known phishing-style pages in a controlled VM (offline snapshots) to confirm common red flags (unexpected signature pop-ups, obfuscated contract addresses).
You can replicate these tests by using a testnet, small token amounts, and a VM or separate browser profile to reduce cross-contamination.
FAQ
Q: Is it safe to keep crypto in a hot wallet?
A: Hot wallets trade some security for convenience. They’re fine for small to medium balances and active DeFi work. For long-term or large holdings, use a hardware-backed account.
Q: How do I revoke token approvals?
A: Use the approvals UI in MetaMask or a trusted token-approval tool, then submit a revoke transaction. See token-approvals-and-revoke.
Q: How do I know if MetaMask wallet is compromised?
A: Unexpected outgoing transactions, new token approvals you didn’t create, or sudden token losses are signs. If that happens, move funds to a new wallet and investigate.
Q: What happens if I lose my phone?
A: Recover with your seed phrase on another device (or restore from a hardware wallet). If you used cloud backups for the seed phrase, treat that as a potential compromise and move funds.
Conclusion & next steps
Keeping a MetaMask wallet safe is about habits as much as tools. Small practices (lock your wallet, review approvals, use hardware for large balances) stop most common attacks. I’ve used and tested these routines daily. Try the step-by-step guides linked above (for setup, hardware integration, and revokes) and make a backup plan today.
Ready to take the next step? Start with the getting-started guide or the hardware integration walkthrough at integrate-hardware-ledger-trezor.