Skip to main content
Tempo’s transaction envelope lets your app execute batched calls, specify a fee token, and control nonce keys in a single transaction.
Unlike standard EVM transactions, Tempo transactions use a calls array instead of a single to/data/value. This enables multiple contract calls to execute atomically in one transaction. View the Tempo transaction recipe for full examples.
To pay Tempo fees with a token, set feeToken to a supported TIP-20 token. View the Tempo transaction recipe for examples. To sponsor fees for a Tempo transaction, set sponsor: true in the transaction options. Privy adds a Tempo fee payer signature before broadcasting the transaction. Learn more.

Parameters

transaction.type
118
required
Transaction type for Tempo’s native envelope.
transaction.chainId
number
required
The Tempo chain ID. Use 4217 for mainnet or 42431 for Moderato (testnet).
transaction.calls
TempoCall[]
required
An array of calls to execute atomically. At least one call is required. Each call has to (required), data, and value.
transaction.feeToken
Hex
Address of the supported TIP-20 token used to pay Tempo fees. If omitted, Tempo’s fee-token preference rules apply. Tempo has no native gas token.
transaction.nonceKey
bigint
2D nonce key. Use 0 for the protocol-managed sequential nonce, or a non-zero value to use a parallel user nonce slot, enabling concurrent transactions.
transaction.nonce
bigint
Sequential nonce within the nonce key slot. Populated automatically if omitted.
transaction.validBefore
bigint
Transaction expiration as a Unix timestamp in seconds. The transaction will not be included after this time.
transaction.validAfter
bigint
Earliest inclusion time as a Unix timestamp in seconds. The transaction will not be included before this time.
transaction.gasLimit
bigint
Gas limit for the transaction. Estimated automatically if omitted.
transaction.maxFeePerGas
bigint
Maximum total fee per gas unit in wei. Estimated automatically if omitted.
transaction.maxPriorityFeePerGas
bigint
Maximum priority fee per gas unit in wei. Estimated automatically if omitted.
wallet
ConnectedWallet
required
The wallet to send the transaction from.
options.sponsor
boolean
Optional parameter to enable gas sponsorship for this Tempo transaction. Learn more.
Most apps should omit nonceKey. It defaults to 0, using Tempo’s sequential protocol nonce. Only set a non-zero value if you need concurrent transactions in parallel nonce slots. Learn more.

Returns

hash
HexString
The hash for the broadcasted transaction.
For full examples including viem tempoActions integration, view the Tempo transaction recipe.