> For the complete documentation index, see [llms.txt](https://flowrouter.gitbook.io/flowrouter-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://flowrouter.gitbook.io/flowrouter-docs/use-flowrouter/approvals-and-transactions.md).

# Approvals and transactions

Understand token allowances, wallet prompts, and transaction confirmation.

An ERC-20 swap can involve two transactions: a token approval followed by the swap. Native ETH needs only the swap transaction.

## What an approval does

An ERC-20 allowance lets a particular spender transfer up to an approved amount of a token. FlowRouter checks the allowance for the connected account before preparing a token-input swap.

If the allowance is insufficient, the frontend requests approval for the amount you entered. It does not request an unlimited allowance in this flow. If an existing allowance is sufficient, no new approval is needed.

The spender is the **FlowRouter contract**, identified in [Network and contracts](/flowrouter-docs/reference/networks-and-contracts.md). Check that the approval prompt names this spender.

An approval does not buy the output token. If you approve and then cancel the swap, the allowance can remain until it is used or revoked. A small unused allowance can also remain when the executable input is lower than the amount requested.

## Why the quote refreshes after approval

Approval takes time and changes the account's onchain state. The app waits for its confirmation, obtains a new account-bound quote, and checks the allowance again.

The new quote can differ from the earlier preview. Review the amounts shown for the final swap.

## Review the swap prompt

Check the connected account, Robinhood Chain network, input amount, output token, and fee estimate. The transaction is sent to the FlowRouter contract; the prepared call specifies the intended receiver and minimum output.

Rejecting a wallet prompt does not submit that transaction. If a transaction has already been submitted, closing the prompt or app does not cancel it.

## Track the result

A submitted hash can be pending, included, confirmed, reverted, or affected by a reorganization. FlowRouter validates the transaction against the intended action and uses its status service to report the result.

The API's `confirmed` status means at least two chain confirmations. This application confirmation threshold is separate from the chain's broader settlement and finality rules.

Use the transaction's explorer link to inspect the receipt. For a successful swap, the output is sent to the connected account in the documented frontend flow.
