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 and practical checks

Smart Contract Interaction

Smart contracts place rules on-chain, and a wallet signature is only one part of interacting with them. Users still need to verify contract address, intent, asset flow and permissions.

Use the page as a decision guide: identify the network, account and request before signing or moving assets.
01The contract address is the target
02Read calls versus state-changing calls
03Contract execution can revert
04Third-party contracts carry risk

The contract address is the target

A DApp interface may route through proxies or several contracts. Before signing, understand the primary interaction target and verify contract addresses against trusted documentation when possible.

Do not rely on a button label or a familiar-looking page as the reason to continue. Compare the request with the on-chain target, network state and expected result, and stop when those pieces do not line up.

Read calls versus state-changing calls

Some contract calls only read data and do not need a signature. State-changing calls require a signed transaction and gas. Knowing the difference helps evaluate whether a request makes sense.

A common mistake is to treat a normal-looking interface as proof that the underlying blockchain action is correct. Public addresses, transaction hashes, contract addresses and network parameters provide independent ways to verify what is happening.

Contract execution can revert

A contract can revert because of conditions, slippage, permissions, balances or internal checks. Inspect on-chain errors and events before repeatedly submitting the same action.

A repeatable order of checks is more reliable than memory. Review source, network, account, target and expected outcome each time so the same safety logic carries across wallets and DApps.

Third-party contracts carry risk

A wallet cannot guarantee the code, economic design or governance of a third-party contract. Participate only when the function and potential downside are within your own understanding and risk tolerance.

When a task involves a third-party contract, bridge, validator or web service, separate that external risk from the wallet itself. A wallet can display and sign a request, but it cannot guarantee the safety of outside code or services.

Practical checklist

  • Confirm that “The contract address is the target” matches the task you intend to perform
  • Confirm that “Read calls versus state-changing calls” matches the task you intend to perform
  • Confirm that “Contract execution can revert” matches the task you intend to perform
  • Confirm that “Third-party contracts carry risk” matches the task you intend to perform

Risk reminder

Seed phrases and private keys remain under the user’s control. Legitimate support should not ask for a seed phrase, private key or verification code. Review address, network and amount before transferring; blockchain transactions generally cannot be unilaterally reversed by a wallet. Third-party DApps and smart contracts carry risk, so review spender and permission scope and consider revoking unused approvals.