- On Ethereum Hoodi Global Nodes, the
safeblock tag follows the Fast Confirmation Rule and trailslatestby a few blocks, typically less than a minute. finalizeddoes not change: it still trailslatestby two to three epochs.- Fast confirmation relies on network synchrony assumptions. Use
finalizedfor actions you cannot reverse. - On Ethereum Mainnet and Sepolia Global Nodes,
safekeeps its standard meaning: the latest justified block.
What the safe block tag returns with fast confirmation
With fast confirmation,safe returns the most recent block that the consensus client confirmed under the Fast Confirmation Rule. The consensus client passes that block to the execution client as its safe block, so every method that takes a block tag resolves safe to it, including eth_getBlockByNumber, eth_call, eth_getBalance, and eth_getLogs.
Under normal network conditions, the Fast Confirmation Rule confirms a block within one or two slots, 12 to 24 seconds. A skipped slot, or a slot in which the rule does not advance, delays the next confirmation.
When the safe block tag falls back to finalized
The Fast Confirmation Rule reverts to the finalized block when its latest confirmed block:- Is older than the previous epoch, for example after the consensus client was offline or fell behind.
- Is no longer on the canonical chain.
- Cannot be confirmed again at the start of the current epoch.
safe returns the same block as finalized, 64 to 96 blocks behind latest. At the next epoch, the rule can restart from the justified block and then catches up to a few blocks behind latest.
Code that follows safe must handle a safe block number that stays the same, jumps forward by many blocks, or moves back to the finalized block. A block that safe returned can also be reorganized out of the chain, so track safe by block hash as well as by number.
When to use finalized instead of safe
Usefinalized when a reorganization past your confirmation point would cost money or cannot be undone. Reverting a finalized block requires validators that hold at least one third of the staked ether to be slashed, whatever the network conditions. A fast-confirmed block can be reorganized without any slashing if attestations arrive after the end of their slot.
- Use
finalizedto credit deposits, release bridge withdrawals, and settle payouts. - Use
safewith fast confirmation for confirmations shown in an interface, for indexers that already handle reorganizations, and to test how your application handles asafeblock a few blocks behindlatest.
Which Chainstack endpoints use fast confirmation
Fast confirmation is on for Ethereum Hoodi Global Nodes. Ethereum Mainnet and Sepolia Global Nodes return the standard justified block forsafe.
To see which behavior an endpoint has, compare safe with latest and finalized:
- With fast confirmation,
safeis a few blocks behindlatest, or equal tofinalizedduring a fallback. - Without fast confirmation,
safeis about one epoch, 32 blocks, ahead offinalized.
check-safe.mjs