HomeLearning pathMulti-sig walletsSmart contract auditingPhishing awarenessVerify team member
Start learning
CriticalInteractive

Phishing awareness in web3

Phishing is the number one attack vector in crypto. Learn to recognize fake dApps, malicious token approvals, Discord scams, and social engineering tactics -- with interactive examples you can practice on.

20 min read
Beginner to Intermediate
Updated Feb 2025

The web3 phishing landscape

Phishing attacks are the single most costly threat in the web3 ecosystem. Unlike traditional finance where banks can reverse fraudulent transactions, blockchain transactions are irreversible. Once your assets are gone, they are gone forever.

$1.7B+
Lost to crypto phishing in 2024
71%
Of crypto theft involves social engineering
300%
Increase in wallet-drainer attacks since 2022

Why web3 users are targeted

Crypto users are uniquely attractive targets for phishers compared to traditional banking customers:

  • Irreversible transactions -- There is no chargeback, no customer support, and no "undo" button. Once a transaction is signed and confirmed on-chain, it is permanent.
  • Pseudonymous wallets -- Attackers can drain a wallet and move funds through mixers or bridges within minutes, making recovery near-impossible.
  • Complex interfaces -- Most users cannot fully read the transaction data they sign, creating a blind trust surface that attackers exploit.
  • High-value targets -- A single wallet may hold millions in tokens, NFTs, or DeFi positions, making a single successful phish extremely lucrative.
  • FOMO culture -- The urgency around airdrops, mints, and token launches creates psychological pressure that bypasses careful thinking.

How web3 phishing differs from traditional phishing

DimensionTraditional PhishingWeb3 Phishing
GoalSteal login credentialsGet a malicious transaction signed
MethodFake login formsFake dApp frontends, malicious approvals
RecoveryBank reversal, password resetNone -- funds are permanently lost
Attack SurfaceEmail, SMSDiscord, Twitter/X, Telegram, fake sites, NFT airdrops
Technical ComplexitySimple HTML clonesFull dApp clones with wallet connectors and smart contract interactions
The Stakes Are Higher in Web3

In traditional banking, phishing might compromise a password that can be reset. In web3, a single signed transaction can drain your entire wallet -- every token, every NFT, every DeFi position -- in one block. There is no customer support to call.

Common attack vectors

Web3 phishing has evolved far beyond simple email scams. Attackers use a sophisticated combination of technical exploits and social engineering. Here are the most common attack vectors you need to recognize.

1. Fake dApp frontends

Attackers create pixel-perfect clones of popular DeFi protocols like Uniswap, Aave, OpenSea, and others. These cloned sites look identical to the real thing, but the smart contract interactions route your funds or approvals to the attacker.

Fake Site
https://app.uniswvp.com
Swap Tokens
You payBalance: 4.28
1.5ETH
You receiveBalance: 0
3,204USDC
Connect Wallet

Red flag: "uniswvp" instead of "uniswap" -- a single character swap

Legitimate Site
🔒https://app.uniswap.org
Swap Tokens
You payBalance: 4.28
1.5ETH
You receiveBalance: 0
3,204USDC
Connect Wallet

Verified: Correct domain "uniswap.org" with valid SSL certificate

Common typosquatting techniques attackers use include:

  • Character substitution: uniswvp.com instead of uniswap.org
  • Homoglyph attacks: Using characters from other alphabets that look identical (e.g., Cyrillic "a" vs Latin "a")
  • Subdomain tricks: uniswap.com.evil-site.xyz
  • TLD swaps: uniswap.io instead of uniswap.org

2. Discord & Telegram scams

Discord and Telegram have become primary hunting grounds for crypto phishers. Attackers exploit the trust within project communities using several tactics:

Attackers create bots that mimic official project announcement channels. They post fake mint links, "emergency migration" notices, or "limited-time airdrop" messages. These bots can appear in legitimate servers when moderator accounts are compromised, or they send mass DMs to server members.

When attackers gain access to a server moderator's account (through token theft, malware, or phishing the mod themselves), they can post in official announcement channels. These messages appear fully legitimate because they come from a trusted, verified role. Multiple high-profile NFT projects have been hit this way.

Attackers scrape member lists from project servers and send targeted DMs impersonating project team members or "support staff." They often claim there is an issue with the victim's wallet, a special airdrop, or an exclusive whitelist opportunity. Legitimate projects will never DM you first about offers or airdrops.

When users ask for help in public channels, scammers immediately DM them posing as "official support." They guide victims to connect their wallet to a fake support portal, or ask them to "verify" their wallet by entering their seed phrase. No legitimate project will ever ask for your seed phrase or private key.

3. Malicious token approvals

This is one of the most dangerous and least understood attack vectors. When you interact with a DeFi protocol, you often need to approve() the contract to spend your tokens. Attackers exploit this mechanism by tricking you into approving their malicious contract to spend unlimited amounts of your tokens.

Approval Phishing Is Silent

Unlike a direct transfer, an approval transaction does not move your funds immediately. The attacker can drain your wallet hours, days, or even weeks later -- after you have forgotten about the approval entirely. You may not realize you have been phished until it is too late.

The attack typically works like this:

  1. Victim visits a phishing site (fake DEX, fake airdrop claim page, etc.)
  2. The site prompts the victim to sign an approve() transaction
  3. The approval grants the attacker's contract permission to spend the victim's tokens
  4. The attacker later calls transferFrom() to drain the tokens at their convenience

4. Fake airdrops & NFT drops

Airdrop phishing is extremely common because it exploits the natural excitement around free tokens. Attackers create convincing airdrop claim pages for tokens that either do not exist or have no real value.

  • Airdrop claim sites ask you to "connect wallet and claim" -- but the signature actually approves a wallet drainer contract
  • Fake NFT mints promise free or discounted NFTs from popular collections -- the mint transaction drains your ETH or approves token spending
  • Dusting attacks send worthless tokens directly to your wallet. When you try to swap or interact with them, the token contract itself steals your assets
  • Phishing NFTs are airdropped to your wallet with descriptions containing malicious links (e.g., "You won 5 ETH! Claim at fake-site.xyz")

5. Social media impersonation

Twitter/X, YouTube, and other platforms are rife with impersonation attacks. Common patterns include:

  • Cloned profiles of project founders or influencers, often with a single character changed in the handle
  • Fake verification badges on platforms where anyone can purchase a checkmark
  • Reply scams that respond to legitimate project tweets with "click here to claim" phishing links
  • Fake livestreams on YouTube featuring deepfake videos of Vitalik Buterin, CZ, or other figures promoting "double your ETH" schemes

6. Compromised project websites

Sometimes attackers do not need to create fake sites -- they compromise the real ones:

  • DNS hijacking -- Attackers gain control of the project's domain registration and redirect traffic to a malicious frontend
  • Frontend supply chain attacks -- Malicious code is injected into JavaScript libraries used by the dApp
  • BGP hijacking -- Network-level attacks that reroute traffic to attacker-controlled servers
  • Compromised deployment pipelines -- Attackers inject malicious code during the build or deploy process
Notable Example

In December 2023, the Ledger Connect Kit library was compromised via a supply chain attack, affecting multiple dApps including SushiSwap, Zapper, and Revoke.cash. Any user who connected their wallet on affected sites during the attack window had their funds at risk. This shows that even legitimate sites can become phishing vectors.

Real-world examples

The best way to develop a sharp eye for phishing is to study real examples. Below are reconstructed scenarios based on actual attacks that have drained millions from web3 users.

Example 1: cloned DEX interface

Phishing Attack ReconstructionDangerous
https://app.uniswvp.com/swap
Uniswap
Connect Wallet
You payBalance: 12.45 ETH
5.0
ETH
You receiveBalance: 0 USDC
10,682
USDC
Swap
Red Flags Identified:
  • URL shows "uniswvp" (letter substitution: "v" + "p" instead of "a" + "p")
  • Domain is .com instead of the legitimate .org
  • Missing SSL lock icon / certificate warning
  • When the user clicks "Swap," the contract actually calls approve() for unlimited USDC to the attacker's address

Example 2: MetaMask phishing email

Phishing Email ExampleScam
Red Flags Annotated:
  1. Fake sender domain: "metamask-support.io" is not a real MetaMask domain. The real MetaMask does not send wallet-related emails.
  2. Artificial urgency: "24 hours" deadline creates panic and bypasses critical thinking.
  3. Impossible claim: MetaMask is a non-custodial wallet -- they cannot "suspend" your wallet because they do not control it.
  4. Generic greeting: "Dear MetaMask User" instead of any personal identification.
  5. Contradictory action: "If you didn't do this, click here" -- any legitimate email would tell you to NOT click if it was not you.

Example 3: Discord DM airdrop scam

Discord DM PhishingScam
Red Flags:
  • Unsolicited DM: Legitimate projects do not DM users about airdrops -- ever.
  • Unrealistic value: $250,000+ for free? If it sounds too good to be true, it is.
  • Artificial urgency: "2 hours remaining" to force rushed decisions.
  • Suspicious domain: "aave-airdrop.xyz" is not the official Aave domain (aave.com).
  • "Do not share": Creates exclusivity to prevent victims from seeking a second opinion.

Example 4: malicious approval transaction

Here is what a malicious approve() call looks like compared to a legitimate one. Pay close attention to the spender address and the amount:

Malicious Approval
// Approving an UNKNOWN contract // to spend UNLIMITED tokens approve( // Spender: unknown address spender: 0x0000...d3aD // Amount: MAX uint256 // = unlimited tokens! amount: 115792...99999 ) // The contract is NOT verified // on Etherscan // Created 2 hours ago
Legitimate Approval
// Approving the verified Uniswap // Router to swap your tokens approve( // Spender: Uniswap V3 Router spender: 0xE592...7525 // Amount: exact swap amount // only what's needed amount: 1500000000 ) // Contract is VERIFIED on // Etherscan, deployed 2+ years
Tip: Always Set Exact Approval Amounts

When your wallet asks you to approve token spending, click "Edit" or "Use Custom Amount" and enter only the exact amount you need for the current transaction. Never approve unlimited (MAX) amounts unless you fully trust the contract and understand the implications.

Interactive phishing test

Think you can spot a phish? Test your skills with these scenarios based on real attacks. For each one, decide whether it is legitimate or a phishing attempt.

InteractiveClick your answer to reveal the explanation

Scenario 1: OpenSea notification

https://opensea.com.nft-verify.xyz/claim
OpenSea
You have an unclaimed offer!

Someone offered 8.5 WETH for your Bored Ape #7291. This offer expires in 45 minutes.

Accept Offer & Claim WETH

Scenario 2: token swap page

🔒https://app.uniswap.org/#/swap
Uniswap
You payBalance: 2.5
0.5ETH
You receiveBalance: 0
1,068USDC
Swap

Scenario 3: staking reward email

Scenario 4: wallet approval request

MetaMask - Permission Request

Allow this contract to spend your USDT?

Contract:0x7a9F...3b2E
Contract Name:SwapHelper
Verified:No
Created:3 days ago
Amount:Unlimited (MAX)
Reject
Approve

How to protect yourself

Prevention is the only real defense against phishing in web3. Once funds are stolen, recovery is almost impossible. Follow these practices to dramatically reduce your risk.

1. Bookmark legitimate sites

The simplest and most effective defense is to always access dApps through bookmarks you have personally verified, never through search results, social media links, or Discord messages. Create bookmarks for every DeFi protocol and marketplace you use regularly.

// Your verified bookmarks should include: app.uniswap.org // Uniswap DEX app.aave.com // Aave lending opensea.io // OpenSea marketplace app.safe.global // Safe multisig stake.lido.fi // Lido staking curve.fi // Curve Finance etherscan.io // Etherscan explorer

2. Verify URLs character by character

Before connecting your wallet to any site, carefully examine the full URL. Look for:

  • Misspelled domain names (uniswvp vs uniswap)
  • Wrong TLDs (.com vs .org)
  • Subdomain tricks (uniswap.evil.com where "evil.com" is the real domain)
  • Homoglyph characters that look identical but are different Unicode code points
  • Extra characters or hyphens (uniswap-app.com)

3. Use a hardware wallet for signing

A hardware wallet like Ledger or Trezor adds a critical layer of protection. Every transaction must be physically confirmed on the device, giving you a moment to review what you are actually signing. Many hardware wallets now show human-readable transaction details on their screens.

Hardware Wallet Best Practice

Keep a "hot wallet" with small amounts for daily DeFi interactions. Store the majority of your assets on a hardware wallet that you only connect for significant, planned transactions. This limits your exposure if you accidentally interact with a phishing site.

4. Revoke unnecessary approvals

Regularly audit and revoke token approvals you no longer need. Use tools like:

  • Revoke.cash -- Comprehensive approval management dashboard
  • Etherscan Token Approval Checker -- View and revoke approvals directly
  • Unrekt.net -- Multi-chain approval scanner

Make it a habit to revoke approvals after every DeFi session. Think of it like logging out of a website.

5. Use browser extensions for phishing detection

Several browser extensions can warn you before you interact with known phishing sites:

  • Pocket Universe -- Simulates transactions before you sign them, showing you exactly what will happen
  • Wallet Guard -- Blocks known phishing sites and warns about suspicious contracts
  • Fire -- Transaction preview and simulation with human-readable explanations

6. Never click links from DMs

Golden Rule

No legitimate crypto project will ever DM you first. Not on Discord, not on Telegram, not on Twitter. If someone DMs you about an airdrop, a mint, a "support issue," or anything involving your wallet, it is a scam. No exceptions. Turn off DMs from server members in Discord settings.

Token approval security

Token approvals are a fundamental part of how DeFi works, but they are also one of the most exploited mechanisms in web3. Understanding how they work is essential to protecting your assets.

How ERC-20 approvals work

The ERC-20 token standard includes an approve() function that allows a contract (the "spender") to transfer tokens on your behalf. This is necessary for DeFi -- when you swap tokens on Uniswap, you first approve the Uniswap Router to spend your tokens, and then it executes the swap.

// The ERC-20 approve function function approve( address spender, // Contract allowed to spend uint256 amount // How many tokens ) external returns (bool); // After approval, the spender can call: function transferFrom( address from, // Your address address to, // Destination uint256 amount // Up to approved amount ) external returns (bool);

The infinite approval problem

For convenience, many dApps request infinite approval (the maximum uint256 value: 2^256 - 1). This means you only have to approve once, rather than before every transaction. However, this creates a dangerous attack surface:

  • If the approved contract is exploited or turns malicious, all of your approved tokens can be drained
  • If you are phished into approving a malicious contract, there is no limit on how much can be stolen
  • Approvals persist forever unless you explicitly revoke them
👤
User approves
MAX tokens
📄
Malicious
contract
🚨
Attacker calls
transferFrom()
💰
All tokens
drained

How to audit your approvals

Follow these steps to check and clean up your token approvals:

  1. Visit a token approval checker such as revoke.cash or Etherscan's approval page
  2. Connect your wallet and review all active approvals
  3. Identify unnecessary approvals -- any contract you no longer use should have its approval revoked
  4. Revoke unlimited approvals -- for contracts you still use, consider setting the approval to a specific amount instead of unlimited
  5. Check all chains -- repeat for each network (Ethereum, Arbitrum, Polygon, BSC, etc.) where you are active
Revoking Costs Gas

Each revocation is an on-chain transaction that costs gas. During high gas periods, batch your revocations or prioritize revoking approvals on high-value tokens first. Even with gas costs, the peace of mind is worth it.

Incident response

If you suspect you have fallen for a phishing attack or notice unauthorized transactions from your wallet, time is critical. Follow these steps immediately.

Immediate actions (first 5 minutes)

1
Stop Interacting

Do not sign any more transactions. Close the suspicious site immediately. Disconnect your wallet from all dApps.

2
Revoke All Approvals

Go to revoke.cash immediately and revoke ALL active token approvals, starting with the highest-value tokens. This prevents the attacker from draining tokens they have been approved to spend.

3
Move Remaining Assets

Transfer all remaining tokens, NFTs, and ETH/native tokens to a brand new, clean wallet that has never been exposed. Do NOT reuse any wallet that may be compromised.

4
Check DeFi Positions

If you have assets in DeFi protocols (liquidity pools, lending, staking), withdraw them immediately to your new wallet. Use a portfolio tracker like Zapper or DeBank to find all positions.

Follow-up actions (first 24 hours)

  • Document everything: Screenshot the phishing site, save transaction hashes, note the attacker's addresses. This evidence is important for reporting.
  • Report the phishing site: Report it to Google Safe Browsing, PhishFort, the platform the link was shared on, and the project being impersonated.
  • Warn the community: Post about the attack (without the phishing link) in relevant Discord servers and social media to help protect others.
  • File a report: Submit reports to the FBI's IC3 (internet crime), your local law enforcement, and platforms like Chainalysis or ScamSniffer.
  • Review your security posture: Determine how you were phished and update your habits. Consider whether you need better browser extensions, different DM settings, or additional verification steps.
Seed Phrase Compromised?

If you shared your seed phrase or private key (or suspect malware captured it), you must assume ALL wallets derived from that seed are compromised. Transfer assets from every account derived from that seed to fresh wallets generated from a new seed phrase. The old seed phrase should never be used again.

Red flags checklist

Use this checklist as a quick reference before interacting with any website, message, or transaction. If you spot even one of these red flags, stop and verify through an independent channel.

URL & website red flags

  • URL contains misspellings or unusual characters (check letter by letter)
  • Domain TLD does not match the known official site (.com vs .org, etc.)
  • No SSL certificate (no lock icon) or certificate warnings
  • Site was accessed through a link in a DM, email, or social media post
  • Browser address bar shows a different domain than expected
  • Site immediately prompts wallet connection on load with no content
  • Pop-ups or overlays urging immediate action

Message & social red flags

  • Unsolicited DM from "project team" or "support staff"
  • Anyone asking for your seed phrase or private key for any reason
  • Urgent deadlines ("expires in 1 hour," "last chance," "act now")
  • Promises of free money, airdrops, or rewards that seem too good to be true
  • Claims that your wallet will be "suspended" or "frozen" (impossible with non-custodial wallets)
  • Requests to "verify" or "validate" your wallet
  • Messages telling you NOT to tell anyone about an exclusive offer

Transaction & approval red flags

  • Approval request for an unverified or newly created contract
  • Unlimited (MAX) token approval amount when a specific amount would suffice
  • Transaction interacts with a contract you do not recognize
  • MetaMask or wallet shows a "blind signing" warning
  • The transaction does not match what the UI says it will do
  • Multiple approval requests in sequence for different tokens
  • Contract was deployed very recently (hours or days old)
When in Doubt, Do Not Sign

If something feels off -- even slightly -- do not sign the transaction. Close the site, navigate to the official site through your bookmarks, and verify independently. A legitimate opportunity will still be there tomorrow. A phishing attack will drain your wallet in seconds.

Continue your security education

Now that you understand phishing threats, learn how to protect organizational funds with multi-signature wallets.