Finality and Confidence Levels

Finality determines when a blockchain transaction is considered irreversible. Until a block is finalized, it could be reorganized (replaced by a different block if the chain temporarily forks), which means any data you read from it might change.

Different blockchains achieve finality in different ways and at different speeds. CRE abstracts these differences through confidence levels, allowing you to specify your finality requirements without needing to know the underlying chain-specific implementation.

You specify confidence levels in two places:

  • EVM Log Triggers — The confidence parameter determines when the trigger fires based on block finality.
  • EVM Client contract reads — The blockNumber parameter lets you query data from LATEST or FINALIZED blocks.

Confidence levels

When reading from the blockchain or setting up triggers, you can specify one of three confidence levels:

Confidence LevelDescriptionUse Case
LATESTThe most recent block. No finality guarantees—the block could still be reorganized.Non-critical, time-sensitive operations where speed matters more than certainty.
SAFEA block that is unlikely to be reorganized, but not yet fully finalized.A balance between speed and security for most operations.
FINALIZEDA block that is considered irreversible. This is the safest option.Critical operations where you need absolute certainty the data won't change.

Choosing the right level

  • Use FINALIZED when: Processing financial transactions, updating critical state, or when incorrect data could cause significant issues.
  • Use SAFE when: You need reasonable confidence without waiting for full finality. Good for most monitoring and alerting use cases.
  • Use LATEST when: Building real-time dashboards, price displays, or other applications where showing the most current data is more important than guaranteed accuracy.

How confidence levels work per chain

CRE translates confidence levels to the appropriate blockchain mechanism:

SAFE and LATEST

When you specify SAFE or LATEST in your workflows, CRE uses the chain's native safe and latest block tags respectively for all supported chains.

FINALIZED

  • Finality tag: Uses the chain's native finalized block tag
  • Block depth: Waits for a specified number of blocks to pass
ChainFinality MethodBlock Depth
Arbitrum One / Arbitrum SepoliaFinality tag—
Avalanche / Avalanche FujiFinality tag—
Base / Base SepoliaFinality tag—
BNB Chain / BNB TestnetFinality tag—
Ethereum / Ethereum SepoliaFinality tag—
OP Mainnet / OP SepoliaFinality tag—
Polygon / Polygon AmoyBlock depth500

Get the latest Chainlink content straight to your inbox.