<!-- tempo-docs-context -->
> Source: [/docs/resources/guides/stablecoin-fees](https://tempo.xyz/developers/docs/resources/guides/stablecoin-fees.md)
> Section: [Get Started](https://tempo.xyz/developers/get-started.md). Choose a starting point, send a test payment, get testnet funds, connect a coding agent, find the SDKs and CLI, and use the resource guides to plan payment workflows, liquidity, provider selection, and partner integrations.
> [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.

[Guides](https://tempo.xyz/developers/docs/resources/guides) / [Payment infrastructure](https://tempo.xyz/developers/docs/resources/guides#payment-infrastructure) / Stablecoin fee operations

# Stablecoin fee operations

Tempo network fees are paid in eligible USD-denominated TIP-20 tokens. Set an explicit fee token for the account or transaction, maintain its balance, and monitor any required fee-conversion liquidity.

For implementation, start with [choosing a fee token](https://tempo.xyz/developers/docs/guide/payments/pay-fees-in-any-stablecoin).

## Check fee-token eligibility

A fee token must be a USD-denominated TIP-20 token and satisfy the [fee system's requirements](https://tempo.xyz/developers/docs/protocol/fees). When the payer and validator use different tokens, the required conversion route needs sufficient Fee AMM liquidity.

A token name, custom issuance, or DEX pair doesn't make a token eligible. Check the contract's currency denomination, balance, permissions, and conversion liquidity.

## Choose a fee token deliberately

The [fee-token preference rules](https://tempo.xyz/developers/docs/protocol/fees/spec-fee#fee-token-preferences) check explicit transaction preferences, account preferences, qualifying token or DEX calls, and the documented fallback.

For an application, prefer an explicit transaction-level or persistent account setting. It makes the fee asset you need to fund and reconcile clear. Same-token selection for a payment is conditional on the transaction's calls and the applicable selection rules.

Once a preference selects a token, a failed eligibility, balance, or liquidity check doesn't make the protocol try every later preference. Holding another stablecoin doesn't rescue an invalid explicit selection.

Follow [the fee-token guide](https://tempo.xyz/developers/docs/guide/payments/pay-fees-in-any-stablecoin) to configure and inspect the selected asset. For a sponsored transaction, the fee payer chooses the fee token.

## Understand fee conversion

The [Fee AMM](https://tempo.xyz/developers/docs/protocol/fees/fee-amm) converts network fees when the payer's token differs from the validator's preferred token. It doesn't convert the payment principal. User-facing stablecoin trades use the separate [Stablecoin DEX](https://tempo.xyz/developers/docs/protocol/exchange).

Fee pools are directional. The protocol checks the direct pool and, when that pool lacks sufficient liquidity, tries the documented two-hop route through the selected token's quote token. Both hops must have sufficient liquidity.

Each fee-swap hop outputs `0.997` units of its output token per unit of its input token before integer rounding. A direct route converts the payer's token to the validator's token; a two-hop route passes through the quote token and applies the rate twice. No conversion is needed when payer and validator use the same fee token. Read the [Fee AMM specification](https://tempo.xyz/developers/docs/protocol/fees/spec-fee-amm) for routing and rounding.

## Separate invalid funding from reverted execution

Before execution, the protocol checks fee funding and conversion liquidity and collects the maximum fee. After execution, it refunds the unused amount and handles the actual fee under the [fee lifecycle](https://tempo.xyz/developers/docs/protocol/fees/spec-fee#fee-payment).

| Outcome | Operational meaning |
| --- | --- |
| Insufficient fee balance or liquidity | The transaction is invalid in that state and cannot be included. Investigate funding, configuration, and liquidity. |
| Included transaction whose application call reverts | The application operation failed, but the transaction still incurs fees. Record the failed payment separately from its network expense. |
| Successful payment | Verify the intended transfer and record the actual fee separately from the amount delivered. |

Tempo uses a bounded dynamic base fee. The actual network expense depends on gas used, applicable gas price, and fee-token conversion. Don't budget every operation as one fixed transfer fee; authorization, contract calls, and other operations can have different costs.

## Configure fee sponsorship separately

[Fee sponsorship](https://tempo.xyz/developers/docs/guide/payments/sponsor-user-fees) allows a distinct account to pay the network fee while the sender authorizes the application calls. Sponsorship doesn't fund the payment principal or make the transaction costless.

Set an application policy for which transactions to sponsor, then monitor the sponsor's balance and expense. Preserve the sender, sponsor, fee token, actual fee, and related business operation in your records.

If an access key signs the payment, fees paid from its account consume its token spending limit. A separate fee payer pays the sponsored fee. See [access-key spending limits](https://tempo.xyz/developers/docs/accounts/access-keys/spending-limits).

## Reconcile the network fee budget

Track fee funding and actual expenses independently of customer payment amounts. Include successful and reverted transactions, sponsored operations, and any fee-conversion effects. An unused-fee refund is part of the network fee lifecycle, not a refund of the underlying purchase.

For the complete payment cost, also include asset acquisition, custody, service-provider charges, currency conversion, and recipient delivery. Use [payment rail comparisons](https://tempo.xyz/developers/docs/resources/guides/payment-rails) when comparing a stablecoin route with another payment service.

## Stablecoin fee questions

### Can every stablecoin pay fees?

No. Check USD-denominated TIP-20 eligibility and the required conversion liquidity.

### Does the Fee AMM exchange the amount being paid?

No. It handles network fee conversion. Use a separate exchange or provider flow when the recipient needs another asset or currency.

### Does sponsoring a fee let the sponsor spend the customer's balance?

Sponsorship authorizes the sponsor to pay the transaction's network fee. The customer's signing authority still authorizes the transaction calls. Keep those roles separate in the integration.
