sendTransaction and callContract are alternate input forms for the same prepare, fee, execute, and status lifecycle.
Send a native transfer
Pass an exported network, a recipient, and a raw base-unit value:parseUnits returns an integer string. Use the transferred token’s decimals when converting user-facing values. It rounds excess fractional precision to the nearest base unit by default; pass { roundingMode: 'reject' } when the input must match that precision exactly.
Use encoded calldata
Use the same method when your app already has encoded calldata. Setvalue to the native-token amount sent with the call:
Call a contract by method
UsecallContract when you have a method signature and typed argument values instead of encoded calldata:
callContract accepts the same execution mode, fee selector, wait setting, and polling options as sendTransaction.
Understand the lifecycle
Both methods perform one lifecycle:1
Prepare
The SDK resolves the transaction input for the selected network and obtains the execution quote.
2
Resolve fees
Sponsored transactions continue without app fee selection. When payment is required, the SDK passes quoted options to
selectFeeOption.3
Execute
The SDK submits the prepared wallet transaction and returns its
txnId.4
Wait for status
By default, the method polls until status resolves or polling times out. An onchain
txnHash appears when available.mode undefined to use the SDK’s default execution behavior. Set 'native' or 'relayer' only when your application explicitly controls that choice.
Select a fee
Testnet transactions are sponsored and skip fee selection. For a non-sponsored mainnet transaction, use the built-in selector to choose the first quoted token whose raw available balance covers the fee:selectFeeOption, the SDK uses the first option returned by OMS without checking whether the wallet can afford it.
For custom selection, return an option’s selection. This example prefers a quoted USDC fee and returns undefined when none is available:
feeOption, selection, and optional balance and available-amount fields. The callback can return synchronously or as a promise.
Read the result
Both transaction methods return:waitForStatus defaults to true. A timed-out status resolution does not remove txnId; check that ID before retrying the write.