Wallet drainers: signatures, approvals and incident checks
A malicious website can request a transaction, a token approval or an off-chain message signature. These requests grant fundamentally different capabilities on-chain. This guide explains the distinctions to help you diagnose permissions accurately; it does not identify live attack kits or replace official wallet recovery procedures.
What did you authorize?
Ethereum and EVM networks provide multiple authorization standards. Inspect the exact smart contract, network ID, and signed payload before approving any prompt.
| Request Type | What it means | What to inspect |
|---|---|---|
| Token approval approve() | A contract permission allowing a designated spender to move specified ERC-20 tokens within its allowance limit. | Token contract, spender address, allowance amount, and network. Disconnecting a dApp does not remove an on-chain allowance. |
| EIP-712 typed message eth_signTypedData_v4 | A standardized format for signing structured JSON data off-chain. Not itself a token transfer, but can be relayed to authorize protocol actions. | Domain separator, verifying contract address, and message fields. Consequences depend entirely on the contract consuming the signature. |
| Permit2 Authorization PermitTransferFrom | Uniswap canonical contract featuring signature-based transfers and time-bounded allowances, used after an initial approval to Permit2. | Spender recipient, token contract, allowed amount, nonce, and deadline/expiry. A one-time signature transfer differs from a standing allowance. |
Signing an off-chain message (like EIP-712 or Permit) is completely distinct from broadcasting an on-chain transaction. A signature can be stored and later submitted by an attacker or third party; that eventual broadcast consumes gas paid by the relayer. Never assume that a signature request is risk-free simply because your wallet indicates a bash.00 gas fee.
Note that legacy eth_sign does not adhere to EIP-712 typed schemas and can sign arbitrary bytecode. EIP-712 itself does not automatically enforce replay protection without explicit protocol-level nonce checks.
Separate a permission incident from key compromise
Remediation depends on whether your wallet private key was stolen or an unwanted permission allowance was granted. Follow this diagnostic checklist:
You only connected a website (wallet_requestPermissions)
Inspect what you signed. A basic connection exposes only your public address. Unless you signed a typed data message, allowance, or transaction, assets cannot move.
You granted an unwanted token allowance or Permit
Review and revoke permissions on the affected blockchain via your wallet's security tools or revocation explorers. Note that revoking an approval stops future drains but cannot recover already-transferred tokens.
You entered a seed phrase or private key into a website
Revoking approvals will not secure the wallet. Abandon the compromised wallet immediately. Generate a brand-new wallet using new mnemonic keys on an uncompromised, clean hardware device.
Deposited gas funds disappear within seconds
Your wallet is monitored by an automated sweeper bot via a leaked private key. Do not deposit further gas tokens. Consult provider compromised-wallet protocols and professional whitehat rescue channels.
Critical evidence to record immediately
Before modifying settings or wiping browsing history, preserve the following forensic details for reports:
- Network ID: Chain name and chain ID (e.g. Ethereum Mainnet, Arbitrum, Solana).
- Transaction hashes: All hashes from block explorers showing unexpected outbound transfers.
- Spender addresses: Exact hexadecimal recipient or approved contract addresses.
- Timestamps: Exact UTC time and block numbers of incident events.
- Source origin URL: Full URL of the phishing site (use our link inspector without connecting a wallet).
- Signed payload: Exact text or hex data from your wallet extension activity log.
Use guidance for the actual network
EVM allowance mechanics (ERC-20, ERC-721, Permit2) do not describe Solana's account and token program model, nor do they reflect TRON's bandwidth and energy model. Support instructions and diagnostic utilities differ fundamentally across ecosystems:
- Solana: Authority delegation, ATA (Associated Token Accounts), and session keys require Solana-specific inspectors. Phantom and Solflare distinguish EVM accounts from SVM accounts.
- TRON: USDT transactions use TRC-20 permissions and consume Energy/Bandwidth resources rather than EVM gas.