Cloned DApps, Malicious Bridges & Approval Tricks: On‑Chain Checklist Before You Connect
Why a pre‑connection checklist matters
Connecting your wallet to a website is the most common point of entry for crypto scams: cloned or impersonated DApps, fake cross‑chain bridges and carefully worded signature/approval requests can all let attackers drain funds without ever stealing your seed phrase. Cross‑chain bridges alone have been a major target, with hundreds of millions lost in high‑profile exploits and scams — so treating any connection as a potential risk is essential.
This article gives a compact, repeatable on‑chain checklist you can run in a few minutes before you ever hit "Connect" or sign: how to validate domains and contract addresses, how to inspect verification and approvals, what approval types to distrust, and immediate steps to take if you suspect foul play.
Step‑by‑step pre‑connection checklist
- Confirm the URL and provenance. Use a bookmarked URL or verify the domain carefully (look for correct TLD, no homoglyphs, HTTPS, and official links from the project's verified social profiles). Never trust links sent in DMs or random Telegram/Discord messages — scammers commonly push fake bridge links and cloned DApp landing pages.
- Find the smart contract address — and don’t trust UI labels alone. If a site shows a contract address, copy it and open a trusted block explorer (Etherscan, Polygonscan, BscScan, etc.) to inspect the address directly rather than trusting the site UI. On the contract page, check whether source code is verified and whether Read / Write contract tabs appear. Verified source code is necessary to inspect behavior.
- Check creator, age and activity. A newly deployed contract or one with almost no interactions is riskier. On block explorers you can view the creation transaction, deployer address and transaction counts; low age or low tx count are red flags (but not proof).
- Verify source code with multiple verifiers. Use tools like Sourcify and the explorer's verification tab to confirm the human‑readable code matches on‑chain bytecode. “Verified” helps but does not equal “safe” — it only means the readable source maps to deployed bytecode.
- Inspect admin keys, ownership and multisig status. Search the contract code for admin functions (setOwner, upgradeTo, or any proxy/upgrade patterns) and check whether an admin key or single owner can withdraw funds. If it's upgradeable or controlled by a single key, treat it as high risk unless controlled by a reputable multisig. Use explorer "Read/Write" tabs and explore the contract's storage and verified code to find ownership patterns.
- Be cautious with bridges — verify the bridge contract and its audit/announcements. Bridges have a history of large exploits stemming from weak validation, compromised validators or buggy verification logic. Confirm the official bridge address from multiple official sources and read post‑mortems or security advisories if the bridge has had past incidents. Avoid new or unproven bridges.
- Understand what you are being asked to sign: approval vs signature. Traditional token approvals (ERC‑20 approve) grant a contract the right to transfer tokens you own; signature‑based flows like EIP‑2612 or Uniswap’s Permit2 use off‑chain signatures to enable transfers without on‑chain approve transactions. Signature approvals can be gas‑free and convenient, but they also let a malicious site request a single signed permit that grants a spender permission to move funds. Read the signature text and expiry details carefully.
- Check existing allowances before interacting. Use token‑approval checkers (Revoke.cash, explorers' token approval checker) to see whether the site or its contracts already have allowances to spend your tokens — and revoke or reduce them if not needed. Revoking approvals should be done immediately if you suspect a malicious approval.
Red flags, practical signs of a scam and example scenarios
- Urgent chat helpers or 'we'll help you move funds': social pressure and urgency are favorite tactics. If a stranger asks you to sign to 'prove ownership' or to move funds, stop and verify independently.
- Unverified or newly verified contracts with generic code: verified source code that implements an 'ownerWithdraw' or 'sweep' function is a major red flag. Remember: verification only proves the source matches the bytecode, not that the code is safe.
- Unlimited approvals requested or approval to a proxy/spending hub: many malicious sites will ask for maximum allowance (uint256.max) or ask you to approve a generic hub contract instead of a named DEX — avoid unlimited approvals; set a custom small allowance if you must interact. Tools and explorers recommend avoiding unlimited spends.
- Bridge links that redirect or ask for cross‑chain signatures offsite: fake bridges often copy UI but use a different bridge contract or ask for signatures that allow minting/withdrawals on other chains. Given the volume and severity of bridge exploits historically, treat any bridge flow as high‑risk and verify the contract and its validator/relayer model.
- Signs of a Permit2 or signature abuse flow: if a site requests a permit-style signature but the stated recipient is ambiguous or the signature's expiry is long (or unlimited), do not sign. Permit2 does provide time‑limited options and design patterns to reduce risk, but attackers can still request malicious signatures — always read the permit details before signing.
If you suspect a malicious approval or signed something by mistake — immediate steps
1) Revoke or reduce approvals: Use revoke.cash or your explorer’s token approval checker to revoke suspicious approvals as your first step; revocation often costs a small gas fee but can prevent further drains.
2) Move remaining funds to a new wallet: If you think the private key or wallet access is compromised, move all non‑approved, non‑native tokens out immediately (native token needed for gas). For tokens with active approvals you can revoke before or after migrating, depending on risk and gas costs.
3) Report and gather evidence: Screenshot the site, copy the contract address, gather transaction hashes and report to the project's official channels, the hosting provider, block explorer scam‑report tools, and law enforcement if losses are material. Sharing details with security projects (Immunefi, ScamSniffer, etc.) can help warn others.
4) Audit your wallet permissions periodically: Make checking approvals part of your routine (monthly for active wallets). For long‑term storage, use cold wallets or hardware wallets that require physical confirmation for every approval or transfer.
Recommended tools & references
- Revoke.cash — token approval checker & revocation UI.
- Etherscan / Polygonscan — contract pages (Read/Write tabs) and token approval checker.
- Sourcify — source verification to confirm readable source matches on‑chain bytecode.
- Uniswap Permit2 docs & repo — explanation of permit‑style approvals, allowance patterns and integration guidance.
- Security post‑mortems & bridge analyses — read incident writeups (Wormhole, Ronin, Nomad) to understand common failures.
Final takeaway: slow down. The moment a website asks you to "connect" or "sign" is when you should switch into verification mode — copy contract addresses to a trusted explorer, confirm provenance from multiple channels, check allowances, and avoid blanket unlimited approvals. When in doubt, revoke, move funds offline, and ask for independent verification from trusted security channels.
