> ## Documentation Index
> Fetch the complete documentation index at: https://docs.atum.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Finality

> When a transaction can no longer be reversed on each chain, and how that sets a payment's speed, when it is completed, refund timing and the deadline to pick.

## Overview

A transaction is **final** when the chain can no longer reverse it. Before that, a chain reorganization could still drop it. Every payment touches two chains, so finality matters twice:

| Chain | Who waits | What it changes for you |
| - | - | - |
| Source: your deposit | The settlement operator, before it pays your recipient. A short wait for everyday payments; for a large payment it may wait until your deposit is final | How long delivery takes, and how long your [delivery deadline](https://docs.atum.xyz/get-started/concepts/deadlines.md#delivery-deadline) must be |
| Destination: the payout | Atum, before the payment is `completed` | When `completed` arrives, when a [refund](https://docs.atum.xyz/get-started/support/refunds.md#when-a-refund-can-start) can start, and when the settlement operator can take its payment from the [settlement vault](https://docs.atum.xyz/get-started/concepts/settlement-vault.md) |

> [!TIP]
>
> **Finality is not how long a payment takes.** Most payments are delivered within seconds, and your recipient has the funds from that moment. The longer times below are how long until a payment is `completed`, and how long a large payment can wait on the source chain.

## Time to finality by chain

| Chain | Final when | Typical time to finality |
| - | - | - |
| Ethereum | The block is in a finalized checkpoint | about 15–20 min |
| Arbitrum | Its batch is in a finalized Ethereum block | about 20 min |
| Optimism | Its batch is in a finalized Ethereum block | about 25–30 min |
| Celo | Its batch is in a finalized Ethereum block | about 25–30 min |
| Base | Its batch is in a finalized Ethereum block | about 20–40 min |
| Polygon | The block is in a finalized milestone | seconds to about 2 min |
| Tron | The block is solidified (19 blocks deep) | about 1 min |
| Avalanche | The block is accepted | seconds |
| Tempo | The block is included | seconds |
| Solana | The block reaches the `finalized` commitment | seconds |

The times are typical, not guaranteed: they move with network load, and a chain can occasionally be much slower. On testnets, Ethereum and its rollups take about as long as on mainnet; the Tron and Solana testnets use a shorter rule. The live values below show each network.

**Rollups are fast but not final.** Arbitrum, Optimism, Base and Celo produce a block every second or two, but those blocks are final only once Ethereum finalizes the batch that contains them. That is why they take as long as Ethereum, or longer.

### Live values

Atum publishes the rule it applies on each chain before it marks a payment `completed`, with a conservative `time_to_final_ms` for EVM and Tron chains:

```bash theme={"theme":"github-dark"}
curl -sS https://veri-fill.production-mainnet.atum.xyz/v1/finality-config
curl -sS https://veri-fill.production-testnet.atum.xyz/v1/finality-config
```

The fields are explained in [Destination finality](https://docs.atum.xyz/settle-payments/destination-finality.md#confirmations).

## Source chain: before your recipient is paid

The settlement operator pays your recipient from its own funds once your deposit is in the [settlement vault](https://docs.atum.xyz/get-started/concepts/settlement-vault.md). If the source chain then reversed your deposit, the operator would lose that payout. You and your recipient would not. So each operator decides how long to wait for your deposit, based on its own risk:

* **Everyday payments:** a short wait. Delivery takes seconds on most chains, and up to a few minutes on Ethereum.
* **Large payments:** an operator may wait until the source chain finalizes your deposit, so delivery can take up to the time to finality above.

What counts as large is each operator's choice. Your delivery deadline has to leave room for this wait, or operators decline the payment. See [Large payments](https://docs.atum.xyz/get-started/concepts/deadlines.md#large-payments).

## Destination chain: before `completed`

The payment is `finalizing` as soon as the payout is mined, and it carries the payout transaction. It becomes `completed` once the payout is final on the destination chain. On Ethereum and its rollups that is the longest step, but your recipient already has the funds.

While the payment is `finalizing`, you can follow the payout yourself. Open its transaction (`transactions.fulfillment`) in the destination chain's block explorer and decide how many confirmations are enough for you. What Atum waits for on each chain is in the [live values](#live-values).

If the payout were reversed before it became final, the payment would not complete, and your funds would be refunded from the settlement vault. What each status means is on [Payment status](https://docs.atum.xyz/get-started/after-submission.md#payment-status).

The settlement operator is paid from the vault only after the payout is final. Settlement operators can read the details in [Destination finality](https://docs.atum.xyz/settle-payments/destination-finality.md).

## Next steps

| Topic | Guide |
| - | - |
| Choose a delivery deadline | [Deadlines](https://docs.atum.xyz/get-started/concepts/deadlines.md#delivery-deadline) |
| Read a payment's status | [After submission](https://docs.atum.xyz/get-started/after-submission.md#payment-status) |
| When a refund can start | [Refunds](https://docs.atum.xyz/get-started/support/refunds.md#when-a-refund-can-start) |


## Related topics

- [Destination finality](https://docs.atum.xyz/settle-payments/destination-finality.md)
- [Glossary](https://docs.atum.xyz/get-started/reference/glossary.md)
- [Changelog](https://docs.atum.xyz/changelog.md)
- [Veri-Fill API](https://docs.atum.xyz/api-reference/veri-fill/introduction.md)
- [Deadlines](https://docs.atum.xyz/get-started/concepts/deadlines.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.