wallets security signatures

· Educational crypto

Signing messages vs transactions: why “no gas” does not mean “no risk”

How a wallet signature request differs from a transaction, what personal_sign and EIP-712 typed data actually show, why off-chain permits can move tokens later, and how to read a signature prompt calmly—EIP and wallet-doc literacy, not investment advice.

Most people learn one rule early: a transaction costs gas, so it must be the “real” step. A signature request costs nothing and never shows up as a pending transaction, so it feels harmless. That instinct is exactly what signature phishing exploits. This page explains the difference between signing a message and signing a transaction, and how to read the prompt before you click Sign.

How it works: same key, different kinds of data

Your wallet uses one private key for everything. What changes is what gets signed and where the result goes.

That last point matters most. A typed-data signature can be a permission slip that someone else submits later. ERC-2612 (permit) lets a token holder set an allowance with a signed message instead of an on-chain approve. The spec says plainly that “the caller of the permit function can be any address.” It also says the deadline can be set so that permits “effectively never expire.” Uniswap’s Permit2 docs describe a similar signature-based allowance and transfer system that works with any ERC-20 after a one-time approval of the Permit2 contract.

Why “gasless” prompts get abused

MetaMask’s signature-phishing article lays out the pattern. A fake dapp asks for an off-chain signature and says it is for something routine, like a deposit, a claim, or an NFT listing. The signature actually grants a token allowance or lists assets, and the attacker uses it “at a time of their choosing.” You never broadcast a transaction and never pay a fee, so nothing in your history looks wrong until the tokens move. ethereum.org’s security page describes the related airdrop-claim pattern: an unexpected asset shows up and points you to a site where you are asked to connect and approve.

How to verify: read a signature like a contract

  1. Check the origin first. Before any field, confirm the site URL your wallet shows is one you opened from your own bookmark. A perfect-looking prompt from the wrong domain is still the wrong domain.
  2. Name the type. Is this a transaction, a plain-text message, or typed data? A plain sign-in message should read like a sign-in: your domain, a nonce or time, and no amounts.
  3. In typed data, read the domain. Look at name, chainId, and verifyingContract. EIP-712 says the wallet should refuse to sign if the chainId does not match the active chain. A domain name you don’t recognize is a reason to stop.
  4. Look for permission words. Permit, spender, value/amount, deadline/expiration, nonce. If those appear and you didn’t ask to approve anything, decline. A very large value or a far-future deadline deserves the same caution as an unlimited token approval.
  5. Treat warnings as stop signs, and silence as neutral. MetaMask’s security alerts can label requests “Warning” or “Malicious.” Its docs also say simulations “do not guarantee detection of all threats.” See transaction simulations and wallet previews.
  6. Never sign anything that asks for seed words. No legitimate signature needs your recovery phrase.

If you think you signed something bad, the steps in how to revoke a token approval still apply. Check allowances, including any Permit2 allowances, on a tool you reached from an official link.

What we will not do

We will not rank wallets, signature-decoding tools, or “protection” add-ons. We will not tell you which dapps to sign for. We will not give trade or price commentary on any token mentioned in the specs.

TakeawayA signature can be a permission slip someone else cashes later. No gas and no pending transaction does not mean no risk. Check the site, the domain, the spender, the amount, and the deadline, or don’t sign.

Related free docs

Sources

Educational content only — not investment advice. This page explains how wallet signatures work as a literacy topic; it does not recommend any wallet, tool, network, or asset to buy, sell, or hold.

← All docs