How to Review a Transaction Simulation
What Is a Transaction Simulation?â
A transaction simulation estimates what a supported transaction may do before it is signed and submitted. Gem Wallet can use simulation results to display decoded request information, expected balance changes, and security warnings on the confirmation screen.
Simulation is especially useful for dApp and smart-contract requests, where the visible website action may hide a more complex contract call.
A simulation is a safety aid, not a guarantee. Blockchain state can change, a simulation can be incomplete or unavailable, and a malicious request may not always produce a warning. Confirm only actions that you initiated and understand.
Review a Simulation Without Confirmingâ
Use only a trusted dApp and a request you intentionally initiated. You can reproduce the review and reject the request before signing:
- Connect Gem Wallet to the verified dApp through WalletConnect.
- Start the intended action on the dApp.
- When Gem Wallet opens the confirmation screen, do not select Confirm yet.
- Review the app, wallet, network, destination, amount, and network fee.
- Read every simulation warning.
- Review the decoded fields and select Details when additional fields are available.
- Check the expected incoming and outgoing balance changes.
- Reject or close the request after reviewing it if you do not intend to submit it.
Not every request or network returns the same simulation information. Missing balance changes or decoded fields do not mean that the transaction has no effect.
Understand the Simulation Headerâ
For a recognized action, Gem Wallet can summarize the simulation at the top of the confirmation details. Approval requests may identify the token and permission being requested.
Compare the summary with the action you selected on the dApp. If you intended to swap but the request describes an approval, first determine whether the approval is a separate required step and whether its spender and amount are appropriate.
Review Expected Balance Changesâ
Gem Wallet can display non-zero simulated changes for assets known to the wallet:
- An outgoing value shows an asset expected to leave the wallet.
- An incoming value shows an asset expected to enter the wallet.
- More than one change can appear for a contract interaction.
Check the asset, direction, and amount. Stop if the simulation shows an outgoing token or NFT that is unrelated to the action you initiated.
Balance changes are estimates from the simulated execution. They may omit unknown assets, zero changes, network fees, or effects that the simulation service cannot determine.
Review Decoded Fieldsâ
Depending on the request, Gem Wallet can show fields such as:
- Contract â the smart-contract address involved.
- Method â the function or action being requested.
- Token â the asset affected by an approval or action.
- Spender â the address receiving permission to use an asset.
- Value â the requested amount or authorization value.
- Expiration â when the authorization should stop being valid.
Additional custom fields may appear under Details. Supported address fields can link to the appropriate blockchain explorer and may display a recognized name alongside a shortened address.
Verify the complete contract and spender addresses using the dApp's official documentation or another trusted source. A readable method name or address label does not prove that the request is safe.
Understand Simulation Warningsâ
Gem Wallet can display warnings for conditions including:
Unlimited Token Approvalâ
The request may allow a spender to use an unlimited amount instead of only the amount needed for the current action. Confirm the spender and decide whether that scope is necessary. See Token Approval vs Permit.
NFT Collection Approvalâ
The request may authorize access to every NFT in a collection rather than one specific item. Reject it unless you intentionally need and trust that permission.
Externally Owned Spenderâ
The approval target appears to be a regular wallet account instead of a smart contract. This can allow a person controlling that account to spend the approved token. Read What Is an Externally Controlled Account Warning?.
Suspicious Spenderâ
The spender has been identified as suspicious. Treat this as a critical warning and cancel the request.
Validation Errorâ
The request contains an invalid or mismatched condition, such as data that cannot be safely validated. Review the error text and do not proceed if the request cannot be verified.
A critical simulation warning disables the confirmation button in Gem Wallet. Do not try to bypass the block through another wallet, browser, or website.
What If No Simulation Appears?â
Simulation details may be absent when the network, transaction type, node, or simulation service cannot provide a usable result. You must still review the normal confirmation details.
If the request is unclear:
- Reject it.
- Verify the dApp's complete domain.
- Confirm the intended action in the dApp's official documentation.
- Check the destination or contract on the correct explorer.
- Contact the dApp through an independently verified support channel.
Do not confirm merely because Gem Wallet shows no warning.
Before You Confirmâ
- Initiate the request yourself from a verified domain.
- Match the app, wallet, asset, and network.
- Compare the intended action with the simulation summary.
- Review all outgoing and incoming balance changes.
- Inspect the contract, method, spender, value, and expiration.
- Stop on unexpected permissions or assets.
- Reject any critical or unexplained warning.
For message-signing requests, follow How to Review a WalletConnect Signature Request. If you already approved a suspicious request, use What to Do After Connecting to a Malicious dApp.