<!-- tempo-docs-context -->
> Source: [/docs/protocol/transactions](https://tempo.xyz/developers/docs/protocol/transactions.md)
> Section: [Tempo EVM](https://tempo.xyz/developers/docs/development.md). Build on Tempo EVM: wallets and keys, transactions and fees, TIP-20 Tokens, contracts, exchange, network details, nodes, protocol specifications, and changelog.
> [Documentation index](https://tempo.xyz/developers/llms.txt) · [Docs skill](https://tempo.xyz/developers/SKILL.md)

> Tempo MCP: Use `search`, `find_pages`, `read_page`, and `code` at `https://mcp.tempo.xyz` for Tempo and related documentation.
> If an indexed page is missing or reflects an older site, read this site’s [documentation index](https://tempo.xyz/developers/llms.txt) and Markdown pages directly.

# Tempo Transactions: protocol overview

Tempo Transactions use an [EIP-2718](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-2718.md) transaction envelope with native support for fee sponsorship, atomic calls, and delegated signing. Use this transaction type when building payments on Tempo.

For runnable SDK examples, see [Use Tempo Transactions](https://tempo.xyz/developers/docs/guide/tempo-transaction). For field definitions and encoding, see the [transaction specification](https://tempo.xyz/developers/docs/protocol/transactions/spec-tempo-transaction).

<span id="properties" />

## Transaction capabilities

<span id="configurable-fee-tokens" />

### Fee tokens

Pay fees with a supported USD-denominated TIP-20 token. When the fee payer's token differs from the validator's preferred token, the Fee AMM converts the fee. This does not convert the amount sent to a payment recipient. See [fee-token selection](https://tempo.xyz/developers/docs/protocol/fees/spec-fee#fee-token-preferences).

### Fee sponsorship

A separate fee payer can cover a transaction's fees while the sender authorizes its calls. See [Sponsor fees](https://tempo.xyz/developers/docs/guide/payments/sponsor-user-fees).

### Batch calls

One transaction can contain several calls that execute atomically: either all calls succeed or their changes are reverted. This differs from submitting independent transactions concurrently. See [Batch payments](https://tempo.xyz/developers/docs/guide/payments/send-a-payment#batch-payment-transactions).

### Access keys

Authorize another key to sign for the same account. Limited access keys have spending and call restrictions; admin keys delegate key management. See [Access keys](https://tempo.xyz/developers/docs/accounts/access-keys) for integration and [Account Keychain](https://tempo.xyz/developers/docs/protocol/transactions/AccountKeychain) for precompile behavior.

### Concurrent transactions

Submit independent transactions without waiting for a single sequential nonce stream. Each transaction has its own receipt and can succeed or fail independently. See [Send payments in parallel](https://tempo.xyz/developers/docs/guide/payments/send-parallel-transactions).

### Expiring nonces

Use expiring nonces for transactions with a bounded validity window and no application-managed sequential nonce. See the [SDK examples](https://tempo.xyz/developers/docs/guide/tempo-transaction#expiring-nonces) and [TIP-1009](https://tempo.xyz/developers/docs/protocol/tips/tip-1009).

<span id="distinguishing-identical-transactions" />

### 2D nonces

Use separate nonce keys when your application needs independent, ordered transaction streams. See the [SDK examples](https://tempo.xyz/developers/docs/guide/tempo-transaction#2d-nonces), including how to distinguish otherwise identical transactions.

<span id="scheduled-transactions" />

### Validity windows

Set `validAfter` and `validBefore` to bound when a transaction may be included. Your application still submits the transaction; these fields do not schedule a job or guarantee inclusion. See the [SDK examples](https://tempo.xyz/developers/docs/guide/tempo-transaction#validity-windows).

<span id="integration-guides" />

<span id="learn-more-about-tempo-transactions" />

## Integrate Tempo Transactions

* [Send a payment](https://tempo.xyz/developers/docs/guide/payments/send-a-payment) for a stablecoin transfer.
* [Create an account](https://tempo.xyz/developers/docs/accounts/create) for signing methods and key setup.
* [Use Tempo Transactions](https://tempo.xyz/developers/docs/guide/tempo-transaction) for SDK examples of each capability.
* [Transaction specification](https://tempo.xyz/developers/docs/protocol/transactions/spec-tempo-transaction) for signatures, encoding, validation, and gas costs.
