Skip to content

Wallet transactions

Wallet send calls ask a wallet to execute one or more chain calls.

Type ID: xmtp.org/walletSendCalls:1.0. The payload is JSON-encoded WalletSendCalls. Its fallback contains [Transaction request generated]: followed by the JSON payload. shouldPush defaults to true on Browser, Node, Kotlin, and Swift.

FieldMeaning
versionWallet call protocol version
chainIdHex chain ID, such as 0x1
fromSender account
callsCalls for the wallet to execute
capabilitiesOptional wallet capability requests

Each call can contain a target address, value, call data, gas limit, and metadata. These fields are all optional. After execution, send a transaction reference so the conversation can follow the result.

Call fieldMeaning
toOptional target address
valueOptional native token value
dataOptional encoded call data
gasOptional gas limit
metadataOptional display metadata
SDK metadata fieldMeaning
descriptionText that describes the action
transactionTypeOperation, such as transfer or lend
extraMap of additional string values

The codec writes extra entries as fields in the wire JSON metadata object. They are not a fixed set of transaction fields. capabilities is an optional map of string values.

The Agent SDK also provides getERC20Decimals, getERC20Balance, and createERC20TransferCalls helpers through @xmtp/agent-sdk/util.