# L2 Sequencer Uptime: Block Production Gaps by Chain

> L2 sequencer uptime by chain: time since the last block, block production gaps and halts, batch posting gaps on Ethereum and each layer 2's stall history.

Markdown copy of https://voltfincrypto.com/apps/l2-sequencer-uptime

**Question:** Is each Ethereum layer 2 producing blocks on schedule, and when did block production last stall?

- Kind: Dashboard in Voltfin Vantage
- Topic: [Layer 2s](https://voltfincrypto.com/topics/layer-2)
- Chains: Base, Arbitrum, OP Mainnet, ZKsync, Linea, Scroll, Unichain, World Chain, Ink, Mantle, Blast, Celo, Ethereum
- Status: Planned. The data is not published yet, so this page states no figure; each figure will open its receipt when it is.

Most layer 2s have a single sequencer that orders transactions and produces blocks. When it stops, the chain stops: no new blocks, no transactions and no liquidations. This dashboard watches block production on each covered layer 2 block by block and flags any gap longer than the chain's normal block time allows.

A chain can keep producing blocks while failing to post them to Ethereum, which delays finality and withdrawals. The dashboard measures that second kind of stall too, from the batches each rollup posts. It also reads the on-chain sequencer uptime feeds that lending protocols use to hold off liquidations during outages.

Every stall is recorded with the last block before it and the first block after it, so its length is a measured interval rather than a report. The history page lists each one by chain.

## Blueprint

### Status now

Whether each covered layer 2 is producing blocks and posting batches right now.

- **Chains producing blocks** (count): Covered layer 2s whose latest block arrived within their normal block time at the last read.
- **Longest current gap** (seconds): The longest time since the latest block across covered layer 2s at the last read, with the chain named.
- **Latest stall**: The most recent stall on any covered layer 2: the chain, when it started and how long it lasted.
- **Uptime feeds reporting down** (count): Sequencer uptime feeds whose latest answer reports the sequencer as down.
- **Status by chain**: For each layer 2: latest block, time since it, normal block time, current gap, time since its last batch on Ethereum and its uptime feed's answer.

### Stall history

Every stall and batch delay on each covered layer 2 over the selected period.

- **Stalls, period** (count): Stalls recorded across covered layer 2s over the selected period.
- **Time stalled, period** (minutes): The total length of all stalls across covered layer 2s over the selected period.
- **Batch posting gaps by chain** (hours): The longest gap between batches posted to Ethereum for each rollup over the selected period.
- **Every stall**: Each stall with its chain, the last block before it, the first block after it, its length and any forced inclusions sent during it.

Filters: Layer 2 (Every covered layer 2); Period (Last week, month, quarter or year).

## How it will be measured

- Block gaps are the time between consecutive block timestamps on each layer 2; a stall is a gap longer than a set multiple of the chain's normal block time, recorded with the blocks on either side.
- Time since the last block compares the newest block's timestamp with the time of the read, from several providers that must agree.
- Batch posting gaps are the time between a rollup's consecutive batch transactions on Ethereum, from its batcher or sequencer inbox, set against its usual posting interval.
- Sequencer uptime feeds are read with latestRoundData() where a Chainlink feed exists for the chain: an answer of one means down, and startedAt dates the change.
- Forced inclusion during a stall is counted from deposits and delayed inbox messages sent through Ethereum while blocks were not being produced.

## Data it needs

- `gas_blocks` (to build): Base fee, priority fee percentiles, gas used and gas limit for each block on fee-market chains, for a near-live gas tracker.
- `chain_activity_daily` (to build): Transactions, active sending addresses, new addresses, contracts created and gas used on each chain per day, counted from blocks and transactions.
- `l2_activity_daily` (to build): Per layer 2 per day: transactions, active addresses, fees users paid on the L2, and what the L2 paid Ethereum to settle and post data.
- Source: Block timestamps of each layer 2 at the head and in history, from several providers
- Source: Batch transactions of each rollup's batcher or sequencer inbox on Ethereum
- Source: Chainlink sequencer uptime feeds: latestRoundData() answer and startedAt on each chain that has one
- Source: OptimismPortal deposits and Arbitrum delayed inbox messages sent during stalls

## Questions

### Is Base down?

The dashboard shows the time since Base's latest block and whether its current gap exceeds what its block time allows, alongside the same check for every covered layer 2. A recent block with a normal gap means the sequencer is producing blocks.

### What happens to my funds if a sequencer goes down?

They stay where they are: a stalled sequencer cannot move them. Transactions wait until blocks resume, and on most rollups you can still send a transaction through Ethereum that the rollup must include once it continues.

### Why do lending protocols watch sequencer uptime?

If a layer 2 stalls, prices on it go stale and users cannot add collateral. Lending protocols read a sequencer uptime feed and hold off liquidations for a grace period after a restart, so the dashboard shows those feeds beside block gaps.

### What is the difference between a block gap and a batch gap?

A block gap means the layer 2 stopped producing blocks, which users notice at once. A batch gap means blocks continue but are not being posted to Ethereum, which delays finality and withdrawals while the chain looks normal.

### Which layer 2 has had the most downtime?

The history page adds up each chain's stalls over the selected period, by count and total length, with every stall listed. Chains differ in block time, so each stall is judged against its own chain's schedule.

## Glossary

- **Sequencer**: The node that orders a layer 2's transactions and builds its blocks.
- **Sequencer uptime feed**: An on-chain feed that reports whether a layer 2's sequencer is up, read by contracts to pause actions during outages.
- **Stall**: A gap in block production longer than the chain's normal block time allows.
- **Forced inclusion**: A transaction sent through a rollup's Ethereum contracts that the rollup must include after a set delay, even if its sequencer ignores it.

## Related apps

- [Rollup Decentralization: Upgrade Keys and Exit Windows](https://voltfincrypto.com/apps/rollup-decentralization)
- [L2 Withdrawal Times to Ethereum by Rollup](https://voltfincrypto.com/apps/l2-withdrawal-times)
- [Ethereum TPS: Mainnet and Layer 2 Transactions per Second](https://voltfincrypto.com/apps/ethereum-tps)
- [Base Chain Stats: Transactions, Users and Fees](https://voltfincrypto.com/apps/base-chain-stats)
- [Ethereum Layer 2 List Ranked by Activity, Fees and Value](https://voltfincrypto.com/apps/ethereum-layer-2-list)
- [Ethereum L2 Fees Compared: Cost per Transaction](https://voltfincrypto.com/apps/ethereum-l2-fees)

Build it in Voltfin Studio: https://app.voltfincrypto.com/signup?next=%2F
