Security & Scams

That Pop-Up Just Tried to Steal Your Wallet. Here's How They Do It and How You Stop Them.

You connected your wallet to what looked like a legitimate DeFi protocol. A small window appeared. It asked for approval. You clicked confirm.

IgnizIgniz Research
8 min read
Cover image for the article "That Pop-Up Just Tried to Steal Your Wallet. Here's How They Do It and How You Stop Them."

You connected your wallet to what looked like a legitimate DeFi protocol. A small window appeared. It asked for approval. You clicked confirm.

Your funds are gone.

This is not a hypothetical. It happened to thousands of people last year, and it is happening right now while you read this. Malicious dApp pop-ups are one of the most effective theft vectors in crypto precisely because they exploit the one thing no security audit can patch: human habit.

Let's break down exactly how these attacks work, what they look like from the inside, and what you need to do before you click anything again.

Why Pop-Ups Are the Perfect Crime Scene

When a malicious actor designs a phishing attack targeting crypto users, they have options. Fake tokens, rug pulls, social engineering, SIM swaps. But all of those require either inside access or sustained effort. A malicious pop-up? That can be deployed in minutes, scaled to thousands of victims, and leave almost no trace.

Here's why they work so well:

The entire UX of Web3 has trained users to click "confirm" on wallet pop-ups. Every legitimate interaction, swapping tokens, adding liquidity, staking, minting, produces a transaction request in your wallet extension. You have been conditioned to read the name of the protocol, glance at the numbers, and click confirm. Attackers know this conditioning exists. They design around it.

The real attack usually happens before the pop-up even appears.

The Anatomy of a dApp Pop-Up Attack

There are several distinct attack vectors that all produce the same result: a wallet pop-up that looks legitimate but is doing something else entirely.

The Infinite Approval Trap

You visit a DEX to swap tokens. The site asks you to "approve" the token before swapping. This is normal. What is not normal is the approval being set to an unlimited amount.

Most users never check the approval amount. They see "Approve USDC" and click confirm. What they actually signed was permission for that contract to move every USDC in their wallet, forever, until they manually revoke it.

The theft does not happen immediately. The attacker waits, sometimes weeks. Then drains wallets in bulk when holdings are at their highest.

What to look for: Any approval pop-up should show the exact amount being approved, not a large number like 115792089237316195423570985008687907853269984665640564039457584007913129639935. That specific number is uint256 max, which means unlimited. If you see it, reject and leave.

The Signature Phishing Play

This one is subtle. You visit a site and it asks you to "sign a message" to verify your wallet or log in. Signing a message feels harmless. It is not a transaction. No gas fee appears. Nothing moves.

Except on certain protocol standards like Permit (EIP-2612), a signed message is functionally equivalent to an approval transaction. You are giving the attacker permission to move your tokens without a separate on-chain transaction.

The pop-up looks like this: a plain MetaMask or Phantom window with a wall of text and a hexadecimal string. Most users skip the text. The text is the attack.

What to look for: If a pop-up says "Sign" instead of "Confirm" but still references token amounts, spending permissions, or spenders in the message body, treat it like a transaction. Read it. If anything looks unfamiliar, reject it and go verify the site's legitimacy elsewhere.

The Cloned Protocol Site

A user searches for a protocol name on Google. An ad appears at the top of the results with a near-identical URL. They click it. The site is pixel-perfect: same logo, same layout, same color scheme. They connect their wallet.

Now they are on a malicious site with a web3 injector that can craft custom pop-ups mimicking their actual wallet interface. The first pop-up looks like a normal transaction. It is not.

This attack is particularly vicious because the malicious site does not need to hack anything. It just needs the user to connect. Once connected, it knows which tokens are in the wallet and can tailor the attack to maximize the drain.

What to look for: Always navigate to DeFi protocols by typing the URL directly or using a bookmarked link you saved yourself. Never trust search engine results, sponsored or organic, as your primary navigation method for financial applications.

The Fake Wallet Update Prompt

A pop-up appears inside a website (not from your actual wallet extension) informing you that your wallet extension needs an update to continue. It provides a download link. The overlay is styled to look like MetaMask, Phantom, Rabby, or whichever wallet it detected you using.

The download is malware. Once installed, it captures your seed phrase entry and sends it to the attacker.

What to look for: Your wallet extension updates through your browser's extension manager or directly from the official extension store. No legitimate dApp will ever ask you to update your wallet through a website overlay. Any site that does this is malicious, full stop.

The Pre-Click Checklist That Will Save You

Security researchers who study Web3 exploits have noted that the majority of successful attacks relied not on technical sophistication but on users skipping a basic verification step. Here is the checklist to run through before you confirm anything.

Before connecting your wallet:

Confirm the URL is exactly correct, character by character. Attackers use homoglyphs (characters that look identical to standard letters) and subdomain tricks like app.uniswap.org.malicious.com. Check that the site's SSL certificate is valid and that it belongs to the expected domain. Look up the official contract addresses from the protocol's own documentation and compare them to what the site references.

Before approving a token:

Read the exact approval amount. If it is unlimited, adjust it manually through your wallet interface to the amount you actually need. Check the contract address the approval is being sent to. Does it match the official contract from the protocol's documentation? If you cannot verify this in under a minute, do not approve.

Before signing a message:

Read the full message text, not just the header. Look for fields like spender, value, allowed, or deadline. If the message contains token amounts or contract addresses, treat it as a financial transaction, because it is. Ask yourself: why does logging into a site require knowledge of my token balances? It should not.

After any interaction:

Use a tool like Revoke.cash or the built-in approval manager in your wallet to check what permissions you have active. Make a habit of revoking unlimited approvals for contracts you no longer use.

Cold Wallet Users: You Are Not Automatically Safe

There is a common misconception that hardware wallets protect against pop-up attacks. They do protect against private key theft. They do not protect against user-authorized approvals.

If you connect a Ledger or Trezor to a malicious site and physically confirm an unlimited approval on the device, you have authorized the attack yourself. The hardware wallet displays the transaction data. The question is whether you read it.

Hardware wallets do add a meaningful layer of friction that protects against some automated attacks. But they are not a substitute for verification. They are a speed bump, not a wall.

The Behavioral Patterns Attackers Exploit

Attackers study user behavior. Here are the specific psychological patterns that malicious dApp pop-ups are designed to exploit.

Approval fatigue. The more approvals a user has confirmed, the less carefully they read new ones. Legitimate apps compound this by requiring multiple approvals during normal use. Attackers position their malicious request after you have already clicked through two or three legitimate ones.

Urgency framing. Pop-ups that say things like "Your transaction will expire in 60 seconds" or "Price impact increases if you wait" are designed to override careful reading. Legitimate protocol mechanics do create time pressure in some contexts, which is exactly why this framing is effective.

Visual mimicry. The MetaMask extension has a specific look. Attackers have studied that look in detail. When a malicious injection creates a fake wallet pop-up inside a browser tab, it is often indistinguishable from the real thing to a casual observer. The key tell is location: your real wallet extension opens as a browser extension popup, not inside a website.

Loss aversion exploitation. Pop-ups claiming you are "missing out on rewards" or need to "rescue your assets" before some deadline are weaponizing loss aversion. The more emotionally loaded the framing, the more suspicious you should be.

Tools Worth Knowing

These tools will not protect you if you skip verification, but they significantly improve your ability to catch threats.

Pocket Universe and Fire are browser extensions that simulate transactions before you sign them. They translate wallet pop-up data into plain English and flag known malicious contracts. Not infallible, but a meaningful additional layer.

Revoke.cash lets you audit and revoke token approvals across multiple chains. Running a revoke audit every few months is a legitimate hygiene practice.

ScamSniffer scans URLs against known phishing databases. It has caught thousands of malicious clones before users connected their wallets.

Etherscan Token Approval Checker is the on-chain source of truth for EVM wallets. If you want to see exactly what permissions are active on your address, this is where to go.

None of these tools replace the fundamental practice of reading what you sign. They are a net below a tightrope, not a replacement for balance.

The Mindset Shift That Matters Most

Most people treat their wallet pop-ups the way they treat software license agreements. They scroll, they click, they move on.

In traditional software, this habit is mostly harmless. In DeFi, it is how funds disappear.

The reframe is this: every wallet pop-up is a check you are about to sign. You would not sign a blank check and hand it to a stranger. Treat unlimited approvals and unfamiliar contract addresses with the same skepticism you would apply to a financial document in the physical world.

The entire architecture of Web3 was built around self-custody. That means the security burden is on you in a way it is not in a bank. Banks have fraud departments, reversals, and insurance. Blockchain transactions are final. There is no support ticket you can file to recover funds lost to a malicious approval.

This is not a reason to avoid DeFi. It is a reason to build the habit of reading before clicking.

Summary: The Non-Negotiables

Read the approval amount. Reject unlimited approvals unless you understand exactly what you are doing and trust the contract completely.

Read signed messages. If a message contains financial permissions, it is a financial transaction.

Navigate directly. Bookmark the official URLs of every protocol you use. Never trust a search result with your wallet.

Revoke unused approvals. Permissions you granted six months ago to a protocol you no longer use are an open door.

Verify wallet pop-up origin. Real wallet pop-ups appear as browser extension windows, not inside websites.

Stay slow when the site tells you to hurry. Urgency in a wallet pop-up is almost always a red flag.

The next pop-up you see will look exactly like the legitimate ones. That is the entire point. The only thing standing between your funds and an attacker's wallet is whether you read it.

Read it.

Stay up to date with Igniz and the future of trading.