<!-- Canonical: https://docs.linea.build/protocol/architecture/sequencer -->

> For the complete Linea documentation index, see [llms.txt](/llms.txt).
> Agents can fetch this page as Markdown at [https://docs.linea.build/protocol/architecture/sequencer.md](https://docs.linea.build/protocol/architecture/sequencer.md).

# Sequencer

## What is it?

The sequencer is the heart of Linea's execution client, responsible for ordering, building, and executing blocks in a way that allows the subsequent zero-knowledge proof to be made.

The sequencer is not directly accessible from outside the network (to prevent DDOS attacks). Instead it’s connected to the RPC nodes via P2P.

## What does it do?

The sequencer:

-   Receives transactions from the network
-   Orders and validates transactions
-   Builds blocks according to Linea's rules
-   Enforces transaction limits (trace counts, gas limits, calldata size)
-   Ensures blocks fit within blob size constraints
-   Executes those blocks
-   Prepares certain data relating to the _traces_ of that execution for the zero-knowledge prover

## How does it do it?

The sequencer is a set of plugins that extends Linea's execution client [Linea Besu](https://github.com/Consensys/linea-besu). This implementation of the Besu execution client provides additional functionality to support Linea and its requirements as a zero-knowledge rollup.

Linea's sequencer takes transactions from the Linea memory pool, and builds them into blocks. Furthermore, it provides data to the [coordinator](/protocol/architecture/coordinator), to ensure that blocks are made in such a way that they can be proven by the zero-knowledge prover, and that they are as compact as possible—doubly important in a situation where all data has to be written in tiny, costly pieces on Ethereum Mainnet. This is done specifically by subsystems within the sequencer: the [trace generator](/protocol/architecture/sequencer/traces-generator) and [conflator](/protocol/architecture/sequencer/conflation).

info

There is typically one sequencer instance per network. Although by applying a Quorum-Based Byzantine Fault Tolerance (QBFT) design, Linea could adopt multiple sequencers in a decentralized configuration.

## Transaction validity conditions

In addition to standard EVM validity checks (signature, nonce, balance, gas limits), the sequencer applies a Linea-specific **profitability threshold** during transaction pool admission and block-building selection. The threshold uses the same gas price calculation described in [estimate gas costs](/network/how-to/gas-fees#variable-cost-and-linea_estimategas), including the compressed transaction size, gas denominator, fixed/variable costs, and context-specific margin.

Transactions that do not meet the threshold can be rejected from the mempool or skipped during selection. This profitability check does not apply to sequencer-prioritized system transactions, including forced transactions.

See [predictable pricing](/network/overview/predictable-pricing) for how Linea's fee mechanism shapes the base fee, and [Ethereum differences](/network/overview/ethereum-differences) for a broader comparison.
