Wormhole Finality#
Wormhole allows integrators to specify the finality level at which a VAA is verified. This determines how long the Guardians wait before attesting to a message.
These options provide different trade-offs between latency and re-org resistance:
instantis sufficient when low latency is required and limited reorg risk is acceptable.safeprovides additional protection while maintaining reasonable latency.finalizedoffers the strongest guarantees but increases confirmation time.
finalized provides the strongest protection against chain re-orgs. Selecting instant, safe, or a custom finality level increases exposure to re-org risk and should be evaluated carefully based on the application's risk profile.
Warning
Some Wormhole-supported EVM chains support setting a custom finality level. Wormhole Contributors recommend using this advanced feature with caution. Choosing a level of finality other than finalized — including instant, safe, or any custom configuration — on EVM chains exposes you to re-org risk. This is especially dangerous when moving assets cross-chain, because assets released or minted on the destination chain may not have been burned or locked on the source chain. This risk can extend to other types of cross-chain data, depending on your application.
Assumption of risk; no warranty; no liability. By selecting a Custom finality level, you acknowledge and accept all risk of chain re-orgs/rollbacks and any resulting loss, imbalance, or data inconsistency. Wormhole contributors, and their affiliates (“Wormhole Parties”) provide this feature “as is,” make no warranties of any kind, and will not be liable for any losses or damages arising from your selection or use of Custom finality. You are solely responsible for appropriate safeguards (e.g., caps, delays, monitoring, circuit breakers).
See the Custom Consistency Levels section.
The following table documents each chain's consistencyLevel values (i.e., finality reached before signing). The consistency level defines how long the Guardians should wait before signing a VAA. The finalization time depends on the specific chain's consensus mechanism. The consistency level is a u8, so any single byte may be used. However, a small subset has particular meanings. If the consistencyLevel isn't one of those specific values, the Otherwise column describes how it's interpreted.
| Chain | Instant | Safe | Finalized | Custom | Otherwise | Time to Finalize | Details |
|---|---|---|---|---|---|---|---|
| Ethereum | 200 | 201 | 203 | finalized | ~ 19min | Details | |
| Solana | 0 | 1 | N/A | ~ 14s | Details | ||
| 0G (Zero Gravity) | 0 | N/A | ~ 69min | ||||
| Algorand | 0 | N/A | ~ 4s | Details | |||
| Aptos | 0 | N/A | ~ 4s | Details | |||
| Arbitrum | 200 | 201 | N/A | finalized | ~ 18min | Details | |
| Avalanche | 200 | N/A | finalized | ~ 2s | Details | ||
| Base | 200 | 201 | N/A | finalized | ~ 18min | ||
| Berachain | 200 | N/A | finalized | ~ 4s | |||
| BNB Smart Chain | 200 | 201 | N/A | finalized | ~ 12s | Details | |
| Celestia | 0 | N/A | ~ 5s | ||||
| Celo | 200 | N/A | finalized | ~ 10s | |||
| Converge | 0 | N/A | ~ 7min | ||||
| Cosmos Hub | 0 | N/A | ~ 5s | ||||
| CreditCoin | 0 | N/A | ~ 60s | ||||
| Dymension | 0 | N/A | ~ 5s | ||||
| Evmos | 0 | N/A | ~ 2s | ||||
| Fantom | 200 | N/A | finalized | ~ 5s | |||
| Fogo | 0 | N/A | ~ 14s | ||||
| HyperEVM | 0 | N/A | ~ 2s | ||||
| Injective | 0 | N/A | ~ 3s | ||||
| Ink | 0 | N/A | ~ 9min | ||||
| Kaia | 200 | N/A | finalized | ~ 1s | |||
| Kujira | 0 | N/A | ~ 3s | ||||
| Mantle | 200 | 201 | N/A | finalized | ~ 18min | ||
| MegaETH | 0 | N/A | ~ 69min | ||||
| Mezo | 0 | N/A | ~ 8s | ||||
| Moca | 0 | N/A | ~ 1s | ||||
| Monad | 0 | N/A | ~ 2s | ||||
| Moonbeam | 200 | 201 | N/A | finalized | ~ 24s | Details | |
| NEAR | 0 | N/A | ~ 2s | Details | |||
| Neutron | 0 | N/A | ~ 5s | ||||
| Optimism | 200 | 201 | N/A | finalized | ~ 18min | ||
| Osmosis | 0 | N/A | ~ 6s | ||||
| Plasma | 0 | N/A | ~ 3s | ||||
| Plume | 0 | N/A | ~ 18min | ||||
| Polygon | 200 | N/A | finalized | ~ 6s | Details | ||
| Scroll | 200 | N/A | finalized | ~ 50min | |||
| Sei | 0 | N/A | ~ 1s | ||||
| SeiEVM | 0 | N/A | ~ 1s | ||||
| Sonic | 0 | N/A | ~ 1s | ||||
| Stacks | 0 | N/A | ~ 61min | ||||
| Stargaze | 0 | N/A | ~ 5s | ||||
| Sui | 0 | N/A | ~ 3s | Details | |||
| Unichain | 200 | 201 | N/A | finalized | ~ 18min | ||
| World Chain | 0 | N/A | ~ 18min | ||||
| X Layer | 200 | 201 | N/A | finalized | ~ 16min | ||
| Xrpl | 0 | N/A | ~ 4s | ||||
| XRPL-EVM | 0 | N/A | ~ 10s |
Custom Consistency Levels (Advanced)#
On supported EVM chains (currently Ethereum and Linea), integrators may specify a custom consistency level. See the white paper to learn how this works.
Warning
Custom finality is an advanced feature and Wormhole Contributors recommend to use this with caution. Custom consistency should only be used when standard finality options do not meet the application’s requirements. Most integrations do not require custom consistency levels. Using custom finality exposes users to re-org risk. Lower finality levels increase the chance that a source-chain transaction may be reverted after assets are released or minted on the destination chain. Custom finality should be used only with a clear understanding of these risks.
How to select a Custom Finality Level:
- For L1s: Wormhole Contributors recommend referring to information on forked blocks in blockchain explorers such as Etherscan, Polygonscan, and others, paying specific attention to the “ReorgDepth” column. Polygon, for instance, has been known to have reorgs with a depth of up to 128 blocks!
- For L2s: Wormhole Contributors recommend reviewing L2 block explorers as well as details around whether the sequencer is centralized and how the L2 RPC node treats finality. Typically, the risks one is exposed to when not waiting for full finality from an L2 are: (1) a centralized (or compromised) sequencer censoring transactions, (2) re-orgs if sequencing is not centralized, and (3) L1 reorg risk and the L2 sequencer not re-submitting the transaction batch to the L1.
CCL Contract Addresses#
Custom Consistency Level (CCL) enables advanced finality control for EVM chains. CCL is currently supported on select EVM chains. The contract addresses below are the on-chain contracts queried when 203 (Custom) is used.
| Chain Name | Contract Address |
|---|---|
| Ethereum | 0x6A4B4A882F5F0a447078b4Fd0b4B571A82371ec2 |
| Linea | 0x6A4B4A882F5F0a447078b4Fd0b4B571A82371ec2 |
| Chain Name | Contract Address |
|---|---|
| Ethereum | 0x6A4B4A882F5F0a447078b4Fd0b4B571A82371ec2 |
| Sepolia | 0x6A4B4A882F5F0a447078b4Fd0b4B571A82371ec2 |
| Linea | 0x6A4B4A882F5F0a447078b4Fd0b4B571A82371ec2 |
| Chain Name | Contract Address |
|---|---|
| Ethereum | 0x6A4B4A882F5F0a447078b4Fd0b4B571A82371ec2 |
| Created: March 3, 2026