imtoken will never ask for your seed phrase, private key or verification code. Always review the address, network and request details before transferring, signing or approving.
imtoken Knowledge & Product Center

Signature Requests

Distinguish message signatures, transaction signatures and contract interactions instead of treating every signature as harmless login confirmation.

Start with the basics →
Core principle

Protect secrets and verify each request independently

Connection, signing, approval and transfer are different actions. Review the consequence of each one instead of assuming that a familiar website makes every request safe.

Offline protection of wallet recovery information

Understand message signatures and transaction signatures first

A useful way to understand “Understand message signatures and transaction signatures first” is to work backward from the result you expect to verify. Distinguish message signatures, transaction signatures and contract interactions instead of treating every signature as harmless login confirmation. That means treating “Identify the real message signatures context”, “Distinguish transaction signatures from look-alike labels”, and “Do not skip the structured data check” as one verification chain rather than concentrating only on the final confirmation button in Signature Requests.

After the action, leave room for verification. Public information such as the network name, public address, transaction hash, block height, or contract address can help establish what happened. If the interface has not refreshed, check those records before submitting again. Recovery information follows the opposite rule: seed phrases, private keys, recovery phrases, and verification codes are not public troubleshooting data and should not be shared.Security decisions should prioritize control of the account. Any request for a seed phrase, private key, recovery phrase, verification code, or remote-control access is an abnormal signal. In Signature Requests, this check belongs specifically to “Understand message signatures and transaction signatures first”, so the conclusion should remain tied to the account, network, target, and permission discussed on this page rather than being copied from another workflow.

  • Identify the real message signatures context
  • Distinguish transaction signatures from look-alike labels
  • Do not skip the structured data check

Check structured data before you begin

Many mistakes around “Check structured data before you begin” come from treating different actions as if they were equivalent. Signature Requests may involve viewing information, signing a message, approving a contract, or broadcasting a transaction. Distinguish message signatures, transaction signatures and contract interactions instead of treating every signature as harmless login confirmation. Identify what “Define the intended task first” refers to, define the scope of “Confirm that structured data matches the plan”, and decide whether “Cancel when the request looks unexpected” can change on-chain state.Security decisions should prioritize control of the account. Any request for a seed phrase, private key, recovery phrase, verification code, or remote-control access is an abnormal signal.

This distinction matters in multi-chain and Web3 use. The same address format does not prove that two networks share state, a token name does not identify a unique contract, and connecting a wallet does not automatically approve later signatures. Treat every new request as a separate decision and proceed only when it matches the action you intended to perform. In Signature Requests, this check belongs specifically to “Check structured data before you begin”, so the conclusion should remain tied to the account, network, target, and permission discussed on this page rather than being copied from another workflow.

  • Define the intended task first
  • Confirm that structured data matches the plan
  • Cancel when the request looks unexpected

Review contract calls during the action

The fastest way to make “Review contract calls during the action” practical is to place it inside a real task. For Signature Requests, define the objective first, review “Review contract calls as its own decision”, then inspect “Read the on-chain details shown by the wallet”, and make “Do not rely on button text alone” the final pre-submit check. Distinguish message signatures, transaction signatures and contract interactions instead of treating every signature as harmless login confirmation. This sequence reduces mistakes caused by switching networks, accounts, or applications halfway through a workflow.

When a third-party DApp, smart contract, bridge, or service is involved, verify the domain source, contract target, and requested permission separately. Previous connections, messages from friends, and familiar visual design are not substitutes for those checks. On-chain transactions are generally not reversible by a wallet provider, so careful review before submission matters more than trying to repair an avoidable mistake afterward.Security decisions should prioritize control of the account. Any request for a seed phrase, private key, recovery phrase, verification code, or remote-control access is an abnormal signal. In Signature Requests, this check belongs specifically to “Review contract calls during the action”, so the conclusion should remain tied to the account, network, target, and permission discussed on this page rather than being copied from another workflow.

  • Review contract calls as its own decision
  • Read the on-chain details shown by the wallet
  • Do not rely on button text alone

Common mistakes and risks in Signature Requests

Think of “Common mistakes and risks in Signature Requests” as a set of boundary conditions rather than a single feature. Distinguish message signatures, transaction signatures and contract interactions instead of treating every signature as harmless login confirmation. For Signature Requests, determine whether “Connection is not the same as signing or approval” fits the current context, what “Reject any request for a seed phrase or private key” changes, and whether “Treat unfamiliar third-party services cautiously” introduces additional fees, permissions, or waiting time.Security decisions should prioritize control of the account. Any request for a seed phrase, private key, recovery phrase, verification code, or remote-control access is an abnormal signal.

When several conditions are present, review the source, network, account, target, fee, and permission one by one. Any unexplained item is a valid reason to stop. For unfamiliar or higher-risk activity, reading the rules and verifying public data before attempting a smaller test can reveal configuration problems before they become expensive. In Signature Requests, this check belongs specifically to “Common mistakes and risks in Signature Requests”, so the conclusion should remain tied to the account, network, target, and permission discussed on this page rather than being copied from another workflow.

  • Connection is not the same as signing or approval
  • Reject any request for a seed phrase or private key
  • Treat unfamiliar third-party services cautiously

Use request origin to verify the result

Before acting on “Use request origin to verify the result”, separate public diagnostic information from private control information. Distinguish message signatures, transaction signatures and contract interactions instead of treating every signature as harmless login confirmation. “Verify with request origin or other public data”, “Confirm the network and public address”, and “Remove permissions that are no longer needed” can usually be understood through interface state or public blockchain data, while seed phrases, private keys, recovery phrases, and verification codes control access and should never be used as proof that a transaction or network is working.

For troubleshooting, use the network name, public address, transaction hash, contract address, and exact error message when appropriate. Official staff should not request a seed phrase or private key, and a legitimate support flow should not require recovery information to be entered into a website. Keeping that boundary clear allows useful investigation without giving away account control.Security decisions should prioritize control of the account. Any request for a seed phrase, private key, recovery phrase, verification code, or remote-control access is an abnormal signal. In Signature Requests, this check belongs specifically to “Use request origin to verify the result”, so the conclusion should remain tied to the account, network, target, and permission discussed on this page rather than being copied from another workflow.

  • Verify with request origin or other public data
  • Confirm the network and public address
  • Remove permissions that are no longer needed

Practical checklist

  • Never enter a seed phrase, private key or recovery phrase into a website
  • Official staff will not ask for your seed phrase, private key or verification code
  • Check the address, network and amount before transferring
  • Review every DApp signature request separately
  • Review and revoke permissions you no longer need