Introduction
I use Coinbase Wallet daily for small DeFi experiments and NFT browsing. I’ve connected it to dozens of dApps, and yes, I clicked a suspicious "Connect" once (and learned from it). What follows is a practical, technical-minded guide to avoid being the next headline about a coinbase wallet scam or digging through threads titled "coinbase wallet scam reddit" to see who else fell for the same trap.
This guide explains how phishing with dApps works under the hood, how to parse a transaction before you sign it, and which behaviors minimize risk (and why some so-called protections are only partial). In my experience a cautious workflow prevents the vast majority of scams.
How dApp phishing actually works (technical)
Phishing often looks less like a lock-screen popup and more like a legitimate dApp asking for normal permissions. Attackers rely on social engineering plus the technical mechanics of blockchain transactions:
- A malicious front-end asks you to "Connect". That opens a session and exposes your public address.
- The site asks you to sign a message or approve a transaction. Signing a message (or EIP-712 typed data) can be used for authentication — and sometimes for signed approvals (EIP-2612/permit). That means funds can be moved without a separate on-chain approval in some flows.
- The wallet presents the transaction summary. Most users check only the displayed token and amount, not the raw call data. But the data field (hex) can include calls to approve(), transferFrom(), or arbitrary contract functions that move tokens.
A concrete technical signpost to watch for: ERC-20 approve has the function selector 0x095ea7b3. transferFrom is 0x23b872dd. An approve call with a value of 0xffff... (max uint256) is an unlimited allowance. Seeing either unexpectedly should set off alarms.
How does the attacker actually move funds? Once a contract or address has allowance, the attacker uses transferFrom to pull tokens out, or the malicious contract executes a swap and drains value. (Yes — people have lost real money this way.)
Mobile in-app browser vs. extension vs. WalletConnect
Which connection method is safer? The short answer: each has trade-offs.
| Surface |
How connection happens |
Phishing risks |
Practical notes |
| Mobile app in-app browser |
Wallet opens pages inside the app |
UI spoofing inside browser; same origin as dApp |
Convenient; higher risk if you trust in-app links blindly |
| Browser extension (injected provider) |
DApp calls window.ethereum → popup connect |
Malicious sites, rogue extensions, fake site domains |
Good for desktop workflows; be careful with browser security |
| WalletConnect (QR/session) |
Session URI via QR or deep link |
Session URIs can be intercepted; long-lived sessions increase risk |
Safer for mobile-desktop combos if you review session requests |
WalletConnect forces you to inspect a session request on the device. That review step helps. But WalletConnect sessions can persist — you must disconnect when done.
Step-by-step: How to avoid malicious dApps (practical)
This is the checklist I use before hitting "Confirm". Follow it in order. It slows you down, but that few seconds saved by skipping checks is often how money is lost.
- Verify the URL and provenance. Only open dApps from bookmarked links or trusted directories.
- Inspect the connect prompt. What address is being asked to interact? Does the site ask for metadata beyond your address?
- Read the transaction details before signing: who is the
to address, what is the value (ETH), and is there non-zero data? If data exists, ask: is this an approve() call? (Look for 0x095ea7b3.)
- Avoid unlimited approvals. If a dApp requests max uint256 approval, switch to "limit" or reject and use a single-amount approval on the token contract.
- Use a dedicated "interaction" account for experiments. Keep your main stash on a different address or hardware wallet.
- Revoke approvals regularly. If you need a step-by-step for revoke flows, see the guide on [revoke-token-approvals-coinbase-wallet].
And yes, I’ve made the mistake of approving an unlimited allowance when I was tired. But revoking quickly stopped further loss (because I caught it early).
Using Coinbase Wallet: built-in tools and where to look
Coinbase Wallet exposes the raw transaction summary before signing — that’s your line of defense. Look for a list of connected dApps in settings and actively disconnect sessions you no longer use (older sessions are an attack surface). For guided steps on connecting and managing dApps see [connect-dapps-to-coinbase-wallet] and for WalletConnect specifics see [walletconnect-with-coinbase-wallet].
If you want to harden your routine:
- Use a hardware wallet for high-value transactions (see [move-crypto-to-hardware-wallet]).
- Treat any "Sign message" request like a mini-contract: ask why it’s needed and what it grants (some sign messages are login-only; others grant permissions via signature).
- Run suspicious transactions through a simulator (eth_call) or paste the
to address into a block explorer to confirm on-chain history.

If you suspect a coinbase wallet scam: immediate response
Act fast. Time matters.
- Disconnect the dApp and close browser tabs.
- Revoke any token approvals to addresses you don't recognize ([revoke-token-approvals-coinbase-wallet]).
- If private keys may be compromised, transfer assets to a new wallet whose seed phrase was generated offline or to a hardware wallet ([move-crypto-to-hardware-wallet]).
- Document transaction hashes and ask for community input (search terms like "coinbase wallet scam reddit" can reveal if others were targeted by the same site).
- If you lose your device or believe the seed phrase is exposed, follow the steps in [recover-or-delete-coinbase-wallet] and [backup-and-recovery-coinbase-wallet].
Privacy considerations beyond phishing
Phishing is only one privacy threat. Address reuse links on-chain activity to a single pseudonymous identity. Every dApp you connect to can see that address and, depending on the RPC, your IP can be logged by a node operator. Want better privacy? Create multiple addresses for different activities, and be conservative about connecting addresses you link to real-world identity.
Smart contract wallets and account abstraction offer session keys and spend limits (less exposure if a site asks for permission). For a technical primer see [smart-contract-wallets-coinbase].
Who this guidance is for (and who should look elsewhere)
Who this helps:
- Active DeFi users who connect to multiple dApps and need a risk workflow.
- Mobile-first users who rely on the in-app browser and want a safer checklist.
Who should look elsewhere:
- Holders storing very large balances who need hardware custody for day-to-day protection. If that’s you, read [coinbase-wallet-vs-hardware-wallet] and [move-crypto-to-hardware-wallet].
FAQ — short answers to common searches
Q: Is it safe to keep crypto in a hot wallet? (Is Coinbase Wallet safe from hackers?)
A: Hot wallets trade some security for convenience. They are safe enough for routine DeFi interactions if you follow strict practices: separate addresses, hardware for large holdings, and careful transaction review.
Q: How do I revoke token approvals?
A: Use the in-wallet revoke UI or an external revocation tool. See [revoke-token-approvals-coinbase-wallet] for step-by-step instructions.
Q: What do I do if I lose my phone?
A: Follow the recovery steps described in [recover-or-delete-coinbase-wallet] and restore from your seed phrase to a new device (or transfer funds to a secure wallet if you suspect the phrase was exposed).
Conclusion & next steps
Phishing attacks often succeed because people rush. Slow down. Inspect the to, value, and data fields. Limit approvals. Use separate accounts and hardware custody for larger sums. If you want more hands-on guidance, read the full [coinbase-wallet-security-features] review and the walkthrough on [connect-dapps-to-coinbase-wallet].
If you suspect a problem, act quickly: disconnect, revoke, and move funds if needed. Want a practical checklist PDF or a short video walkthrough next? Check the related guides linked above and keep experimenting safely.