Skip to main content

Prerequisites

Before this page: have a connected wallet (see Connecting external wallets) on the network you’re transacting on (see Network switching & validation).
Transactions are chain-specific. The examples here use the EVM extension (@dynamic-labs-sdk/evm). The pattern — simulate, confirm with the user, send, wait — is the same on other chains with that chain’s functions.

What you’ll build

A trustworthy “review & send” step:
  1. Simulate the transaction to preview asset changes, fees, and a security verdict — before the user signs.
  2. Show that preview and let the user approve or cancel.
  3. Send the transaction with the wallet’s client.
  4. Wait for it to confirm and update your UI.

Simulating before you send

simulateEvmTransaction returns the assets moving in and out, optional feeData, and a Blockaid validation verdict (benign / warning / malicious). Use it to warn — or block — before the user signs.

Sending and confirming

Get a wallet client for the account, send the transaction to obtain a hash, then confirmTransaction resolves once it’s confirmed on-chain.

Signing a message

For sign-in prompts, approvals, or off-chain proofs, signMessage returns a signature without a transaction.

Handling errors

See also

Last modified on July 21, 2026