On this pageA signature proves control or intentA message signature may not create an immediate on-chain transactionA transaction signature changes on-chain stateReject structured data you cannot explain

A signature proves control or intent

Start by making the real object of “A signature proves control or intent” explicit. The wallet uses a private key to create a signature that another party can verify. This is not just vocabulary: it tells you where the displayed data comes from, what the next confirmation can change and which facts should be checked on the relevant network. For Signature Requests, a familiar name, icon or interface is not enough by itself; network, account and intended action belong in the same decision.

What to verify in practice

A common mistake in this area is treating a plausible screen as complete evidence. The wallet uses a private key to create a signature that another party can verify. The private key itself should not leave the wallet. If a request unexpectedly asks for broader permission, a network switch, recovery material or an unexplained signature, stop and verify the source. Declining an action you cannot explain is safer than guessing what a contract or signature might do.

For this part of Signature Requests, keep one boundary in mind: Security is not a one-time trust decision. Domains, devices, signatures, permissions and transactions each need their own review when they occur. Decisions around “A signature proves control or intent” should be based on the current network, account and request rather than assuming a previous successful action makes the next one trustworthy. On-chain transactions generally cannot be unilaterally reversed by a wallet, and third-party DApps, smart contracts or bridges can introduce separate risks.

A message signature may not create an immediate on-chain transaction

For Signature Requests, a practical review can be split into target, network and result. Login messages can be gas-free, but the signed text may still authorize a service-side action. Read the domain, nonce, expiry and statement, and avoid signing blank or unexplained data. Then use public on-chain evidence where appropriate: Keep a transaction hash or another public reference for verification. This order reduces the chance that interface familiarity will hide an important detail and makes troubleshooting easier when something looks wrong.

A durable routine does not need to be complicated. For “A message signature may not create an immediate on-chain transaction”, define the expected action, perform only what is necessary, and verify the result afterward. Login messages can be gas-free, but the signed text may still authorize a service-side action. Public references such as a transaction hash, network name or address can help with troubleshooting, while a seed phrase, private key or verification code should stay out of webpages, support tickets and chats.

For this part of Signature Requests, keep one boundary in mind: Security is not a one-time trust decision. Domains, devices, signatures, permissions and transactions each need their own review when they occur. Decisions around “A message signature may not create an immediate on-chain transaction” should be based on the current network, account and request rather than assuming a previous successful action makes the next one trustworthy. On-chain transactions generally cannot be unilaterally reversed by a wallet, and third-party DApps, smart contracts or bridges can introduce separate risks.

Security review
  • Login messages can be gas-free, but the signed text may still authorize a service-side action. Read the domain, nonce, expiry and statement, and avoid signing blank or unexplained data..

A transaction signature changes on-chain state

A common mistake in this area is treating a plausible screen as complete evidence. Transfers, swaps, contract calls and approvals commonly require transaction signatures. Review network, contract, amount and fee on the confirmation screen rather than relying on a button labeled “Continue” or “Verify”. If a request unexpectedly asks for broader permission, a network switch, recovery material or an unexplained signature, stop and verify the source. Declining an action you cannot explain is safer than guessing what a contract or signature might do.

Risk signals worth noticing

Start by making the real object of “A transaction signature changes on-chain state” explicit. Transfers, swaps, contract calls and approvals commonly require transaction signatures. This is not just vocabulary: it tells you where the displayed data comes from, what the next confirmation can change and which facts should be checked on the relevant network. For Signature Requests, a familiar name, icon or interface is not enough by itself; network, account and intended action belong in the same decision.

For this part of Signature Requests, keep one boundary in mind: Security is not a one-time trust decision. Domains, devices, signatures, permissions and transactions each need their own review when they occur. Decisions around “A transaction signature changes on-chain state” should be based on the current network, account and request rather than assuming a previous successful action makes the next one trustworthy. On-chain transactions generally cannot be unilaterally reversed by a wallet, and third-party DApps, smart contracts or bridges can introduce separate risks.

Reject structured data you cannot explain

A durable routine does not need to be complicated. For “Reject structured data you cannot explain”, define the expected action, perform only what is necessary, and verify the result afterward. Standards such as EIP-712 can make data more readable, yet complex fields can still carry permissions or orders. Public references such as a transaction hash, network name or address can help with troubleshooting, while a seed phrase, private key or verification code should stay out of webpages, support tickets and chats.

For Signature Requests, a practical review can be split into target, network and result. Standards such as EIP-712 can make data more readable, yet complex fields can still carry permissions or orders. Do not proceed when the target contract, spender, quantity or expiry is unclear. Then use public on-chain evidence where appropriate: Keep a transaction hash or another public reference for verification. This order reduces the chance that interface familiarity will hide an important detail and makes troubleshooting easier when something looks wrong.

For this part of Signature Requests, keep one boundary in mind: Security is not a one-time trust decision. Domains, devices, signatures, permissions and transactions each need their own review when they occur. Decisions around “Reject structured data you cannot explain” should be based on the current network, account and request rather than assuming a previous successful action makes the next one trustworthy. On-chain transactions generally cannot be unilaterally reversed by a wallet, and third-party DApps, smart contracts or bridges can introduce separate risks.