shield-checkAvoid Malicious Flags

How to Avoid Getting Your App Flagged as Malicious

Wallets, browsers, and security services may flag dApps when they show phishing-like behavior, unsafe transaction patterns, or suspicious infrastructure. This guide lists practical steps to keep your SATUCHAIN application trustworthy and reduce false positives.

1) Be Transparent About What the App Does

  • Clearly label actions such as Approve, Swap, Sign, Deploy, Mint, and Transfer.

  • Show the exact contract address the user will interact with.

  • Display the network name and chain ID the app expects.

  • Provide an obvious link to the explorer for contracts and transactions.

2) Never Request Dangerous Signatures

Avoid using signature methods that can be abused or look suspicious:

  • Do not request blind signatures with unclear purpose.

  • Do not ask users to sign messages that include:

    • hidden URLs

    • encoded transactions

    • unrelated “login” text that resembles wallet drain patterns

Recommended:

  • Use SIWE (Sign-In with Ethereum) style logins with a clear domain, nonce, and expiration.

  • Keep messages short, human-readable, and domain-bound.

3) Avoid “Unlimited Approvals” by Default

Unlimited token approvals are a common signal used in wallet warnings.

  • Default to a safe approval amount (exact amount required).

  • Offer “Unlimited approval” only as an optional advanced toggle.

  • Show what the approval means and which token/contract is being approved.

4) Use Verified Contracts and Stable Addresses

  • Verify and publish contract source code on the explorer.

  • Avoid frequent contract address rotation unless necessary.

  • Do not deploy proxy upgrades without clearly communicating:

    • implementation address

    • admin controls

    • upgrade rights

Unverified or constantly changing addresses are often treated as higher risk.

5) Use Reputable Infrastructure and HTTPS

Flags often come from suspicious endpoints or mixed content.

  • Serve your dApp over HTTPS only.

  • Avoid loading scripts from unknown or newly created domains.

  • Use stable RPC endpoints and avoid random rotating RPC URLs.

  • Do not embed obfuscated JavaScript or suspicious third-party widgets.

6) Keep the UI Honest

Avoid patterns commonly associated with phishing:

  • Do not hide critical buttons or force repeated popups.

  • Do not simulate “system” dialogs.

  • Do not use fake wallet connect modals that mimic MetaMask.

  • Do not auto-trigger wallet requests on page load (especially eth_requestAccounts).

Best practice:

  • Ask for wallet connection only after a user clicks Connect Wallet.

7) Implement Security Headers and Basic Hardening

For production websites, configure:

  • Content-Security-Policy (CSP)

  • X-Frame-Options / frame-ancestors (prevent clickjacking)

  • Strict-Transport-Security (HSTS)

  • Referrer-Policy

These reduce the chance of injection-based compromise, which can lead to blacklisting.

8) Provide Trust Signals

  • Include a public documentation page with:

    • contract addresses

    • audit links (if any)

    • changelog

  • Publish an official support contact.

  • Use consistent branding across your site, docs, and social accounts.

  • Avoid “too-good-to-be-true” claims that trigger scam heuristics.

9) Monitor for Compromise

A legitimate dApp can be flagged if its domain is compromised.

  • Use CI/CD with integrity checks.

  • Lock dependencies and monitor supply-chain alerts.

  • Monitor DNS changes and enforce 2FA on registrar accounts.

  • Use a WAF or basic DDoS protection for production.

10) Handle Reports Quickly

If your app is flagged:

  • Identify what service flagged it (wallet, browser, Safe Browsing, etc.)

  • Fix the underlying issue (or prove false positive)

  • Provide verification evidence:

    • source code verification

    • explorer links

    • reproducible behavior explanation

  • Request review through the relevant platform’s appeal process

Last updated