Sooner or later it happens to every crypto user. You connect your wallet to a website and get a popup asking you to “sign” something — no fee shown, no clear explanation, just a block of technical-looking text and an Approve button. Most people click through without a second thought.
In this guide, you’ll learn what message signing actually is, the three kinds of signature requests you’ll run into, which ones are harmless, which ones can quietly drain your wallet, and a simple routine for checking every signature before you click approve.
id=”what-signing-means”>What “Signing a Message” Actually Means
Your wallet’s private key does two jobs: it can authorize on-chain transactions, and it can create cryptographic proof that you control an address. That second job is what “signing a message” is. When you sign a message, your wallet stamps a piece of data with your private key. Anyone can then verify that the stamp could only have come from the owner of your address — without you ever sending anything on-chain.
That makes message signing fundamentally different from a transaction. A transaction is broadcast to the blockchain, moves funds, and costs gas. A message signature never leaves your device unless you hand it over; it costs no gas and moves nothing by itself. This is why wallets often show a friendlier, less alarming screen for message signatures than for transactions.
Here’s the catch that confuses almost everyone: not everything labeled a “signature” stays off-chain and harmless. Some signature requests give someone else the power to act on your behalf later. Think of it like signing a permission slip versus signing a blank check. The permission slip proves who you are. The blank check lets whoever holds it fill in the amount.
There are a few technical formats you’ll encounter, and it helps to recognize their names:
- Personal message signing (EIP-191 / personal_sign): the simplest kind. Your wallet shows human-readable text like “Welcome to ExampleApp — sign in with your wallet.” This is the permission slip.
- Typed data signing (EIP-712): structured data with named fields — token, amount, spender, deadline. Your wallet can display these fields clearly, which makes them easier to inspect. But readable doesn’t mean safe; the content of the fields is what matters.
- Permit signatures (ERC-2612 / “permit”): a special EIP-712 signature that lets a contract spend your tokens without you ever sending an on-chain approval transaction. The signature itself is the approval. This is the blank check, and it’s the single most abused signature type in wallet-draining scams.
- Raw hash signing (eth_sign): the oldest, most dangerous method. Your wallet shows nothing but a hexadecimal hash — you literally cannot see what you’re signing. Legitimate apps almost never need this.
When Signing Is Safe
Let’s start with the good news: plenty of everyday crypto activity involves signatures that carry essentially no risk. A signature is generally harmless when it does nothing except prove you control an address. Look for these patterns:
- Logging into a dapp: many apps ask you to sign a message like “Sign in to MyApp — this request will not trigger a blockchain transaction or cost any gas.” That’s exactly what it does: proves you’re you, like a password you can’t forget. No funds can move from this.
- Proving ownership to support or a community: support teams, Discord servers, and allowlist forms sometimes ask you to sign a short message to confirm you own the wallet you’re asking about. This is the digital equivalent of showing ID.
- Off-chain votes and polls: governance snapshots and community polls often collect signed ballots instead of on-chain votes. Your signature records your choice; nothing is executed on-chain.
- Verifying a wallet you just set up: some wallets and backup tools ask you to sign a test message to confirm everything works.
The common thread: the message is short, human-readable, clearly states it won’t move funds or cost gas, and comes from a site you intentionally visited. Even then, pay attention to context. A perfectly innocent-looking login signature requested by a phishing site is harmless by itself — but it’s often step one of a social-engineering flow that ends with a dangerous signature or a fake transaction a minute later.
When Signing Is Dangerous
Now the part that matters. A signature becomes dangerous when it authorizes future on-chain actions by someone else. The signature itself costs nothing and moves nothing — which is exactly why it feels safe. The damage happens later, when the holder of your signature submits it to a contract. Here are the patterns that should make you stop and think hard:
- Permit signatures (ERC-2612): as mentioned above, a permit lets a contract spend your tokens using only your signature — no on-chain approval transaction, no gas from you, no warning in your transaction history until the tokens are already gone. Scammers love permits because victims never see a suspicious transaction in their wallet. If a random website asks you to sign something mentioning “permit,” “approve,” or “allowance,” treat it as hostile until proven otherwise.
- NFT marketplace listings (Seaport-style orders): listing an NFT involves signing an order that authorizes the marketplace contract to move your NFT when a buyer appears. On the real marketplace, that’s how listings work. On a fake marketplace, your signature lets the scammer’s contract take the NFT for a fraction of its value — or for nothing. The signature looks nearly identical in both cases.
- Unlimited approvals: some signatures authorize spending “unlimited” amounts of a token, shown as an absurdly large number (often 2256−1). A legitimate app might request this for convenience, but a scammer uses it to drain the entire token balance in one go.
- Raw hash signing (eth_sign): if your wallet shows only a hex hash and asks you to sign, you’re being asked to approve something you cannot read. No legitimate consumer app needs this from you. Decline it, every time.
- Blind signing on limited wallets: some wallets (especially older mobile or hardware setups) can’t display typed data clearly and ask you to sign “blind.” If you can’t read what you’re authorizing, you’re guessing — and guessing with your private key is how money gets lost.
- Session keys and smart-wallet permissions: newer smart wallets let you grant an app a “session key” — permission to act for you for a limited time. Useful for games, risky if the session is broad or long. If you’re curious how smart wallets change the permission model, our explainer on account abstraction wallets walks through session keys in plain English.
There’s one more subtle danger: signed orders can be valuable to third parties even when you’re honest. When you sign a swap order off-chain, that signed order is a piece of data other actors can see and react to. Attackers who monitor signed orders can position their own trades around yours. If you want to understand that side of the game, read our guide to protecting your swaps from MEV bots — it explains how signed orders become visible and what that means for your prices.
How to Tell Safe Signatures From Risky Ones
You don’t need to become a cryptography expert. You need a short checklist and the discipline to use it. Every time a signature popup appears, run through these five checks before you decide:
- Check the origin. Your wallet shows which website is requesting the signature. Does that domain match the site you intentionally opened? Phishing sites often use lookalike domains — one letter off, a different top-level domain, or extra words like “official” or “claim.” If anything looks off, close the tab and type the real address yourself.
- Read the typed data fields. For EIP-712 signatures, your wallet displays named fields. Look specifically for words like spender, operator, amount, value, deadline, and nonce. A spender you don’t recognize plus an amount you didn’t agree to is a red flag.
- Look for unlimited allowances. If the amount field shows a gigantic number (something like 115792089237316195423570985008687907853269984665640564039457584007913129639935 — that’s 2256−1, the maximum), the signature authorizes spending your entire balance of that token. Legitimate apps sometimes request this, but you should consciously decide, not discover it.
- Reject what you can’t read. Raw hex, an eth_sign request, or a wallet screen that can’t render the data — decline. There is no legitimate everyday reason for a regular user to sign something unreadable.
- Verify unfamiliar contracts. If the signature names a contract address, paste it into a block explorer — type the explorer’s address yourself, never follow a link from the suspicious site — and check whether it’s the verified contract of the project you expect. Unverified contracts and contracts deployed days ago are warning signs.
The table below summarizes the most common signature types you’ll meet, what each one does, and how to treat it:
| Signature type | What it does | Risk level | Typical example |
|---|---|---|---|
| Login message (EIP-191) | Proves you own an address; moves nothing | Low | Signing into a dapp or forum |
| Ownership proof | Confirms control for support or verification | Low | Discord wallet verification |
| Off-chain vote | Records a ballot; executes nothing | Low | Governance snapshot polls |
| Limit order / NFT listing (EIP-712) | Authorizes a specific trade at a set price | Medium | Listing an NFT on a marketplace |
| Permit approval (ERC-2612) | Grants token spending rights via signature alone | High | Fake “claim” pages draining tokens |
| Approval for all (NFTs) | Lets a contract move all your NFTs in a collection | High | Malicious “free mint” sites |
| Session key (smart wallets) | Grants an app temporary acting rights | Medium–High | Games and automation tools |
| Raw hash (eth_sign) | Signs data you cannot read | Extreme | Almost always a scam or a bug |
Common Signature Scams to Know
Signature-based theft has become the dominant wallet-draining technique precisely because it bypasses the mental alarm that a scary transaction screen would trigger. Here are the scams running right now, described plainly so you can recognize them:
- The fake airdrop claim: a post or DM promises free tokens. The claim site asks you to “verify” or “sign to claim.” The signature is actually a permit granting the scammer’s contract the right to spend your real tokens. You receive nothing; your tokens leave.
- The free mint: a hyped NFT mint asks for a signature that turns out to be an approval-for-all on your NFT collections. Moments later, your most valuable NFTs are listed or transferred away.
- Fake support “verification”: someone posing as support — in Discord, Telegram, or email — tells you your wallet is flagged and asks you to “verify ownership” by signing on their site. Real support never asks for signatures on third-party sites.
- The lookalike dapp: a pixel-perfect copy of a real app, reached through a search ad or a slightly wrong link. Everything works normally until the signature step, where the typed data quietly names the attacker’s contract as spender.
- The “speed up your transaction” trick: you’re told a stuck transaction needs a signature to accelerate. Real acceleration works through fee replacement, not mystery signatures.
- Malicious token approvals bundled into bridging: bridges legitimately ask for signatures and approvals before moving your assets. A fake bridge asks for the same things — plus a little extra. Before using any bridge, it’s worth understanding how bridge trust models work, so you can tell a real bridging flow from a dressed-up drainer.
A 2-Minute Safety Routine for Every Signature
Here’s a practical routine you can actually follow. It takes about two minutes, and after a few repetitions it becomes automatic:
- Pause and name what you’re doing. Say it to yourself: “I am about to sign X on site Y because Z.” If you can’t fill in those blanks, stop.
- Check the origin in your wallet, not the page. Read the domain your wallet displays in the popup. Compare it letter by letter with the site you meant to visit. Close anything that doesn’t match exactly.
- Read every field. For typed data, scan the spender/operator, the amounts, and the deadline. Ask: do I recognize this contract, and did I agree to this amount?
- Decline the unreadable. Raw hex, eth_sign requests, blank signing screens — always reject. No exceptions for “just this once.”
- Keep approvals minimal. When you do approve spending, prefer exact amounts over unlimited allowances. It takes an extra minute and sharply limits the damage if something goes wrong later.
- Review your approvals regularly. Once every few months, check which contracts still have spending rights on your wallet and revoke the ones you no longer use. Approval-reviewer tools exist for every major chain — find one by typing a block explorer’s address yourself, not by clicking a link someone sent you.
- Use a separate wallet for experiments. Keep most of your funds in a wallet you rarely connect to new sites, and use a small “hot” wallet for trying new apps, claims, and mints. If the hot wallet gets drained, the damage is capped.
None of this requires technical skill — just patience. The entire business model of signature scams depends on you being in a hurry.
FAQs
The Bottom Line
Signing a message in your crypto wallet is safe when all it does is prove you own an address — logins, ownership checks, and off-chain votes fall squarely in this camp. It becomes dangerous the moment a signature authorizes spending, approvals, or future actions by someone else’s contract. The whole trick is knowing which kind you’re looking at, and the only reliable way to know is to read the request: check the origin in your wallet, read the typed data fields, and reject anything you can’t understand.
Adopt the two-minute routine, keep a separate wallet for experiments, and remember that no legitimate signature needs to happen in ten seconds. Do that, and the signature popup goes back to being what it should be: boring.
This guide is for education only — not financial advice.

