# Introduction

## What is Immutable Sequencing?

Immutable sequencing means Facet's transaction ordering is determined entirely by Ethereum L1, with no intermediaries. Users send transactions to an immutable address, and Facet blocks mirror the exact order that Ethereum includes them.

## How Sequencing Works

### 1. User Submits Transaction

Users send Ethereum transactions containing Facet transaction data to:

```
0x00000000000000000000000000000000000face7
```

### 2. L1 Inclusion

Ethereum validators include these transactions in L1 blocks, just like any other Ethereum transaction. The transaction can face the same censorship risks as any L1 transaction, but benefits from Ethereum's censorship resistance.

### 3. Facet Block Construction

Facet nodes:

* Monitor every Ethereum block
* Extract all transactions sent to `0xface7`
* Construct Facet blocks using the **exact same order** as they appear in the L1 block
* Produce Facet blocks on a fixed 12s cadence. When an Ethereum block exists for a slot, that slot’s Facet block includes those inbox transactions. When Ethereum skips a slot (no L1 block), Facet still produces a filler block for that slot with no inbox transactions.

### 4. Guaranteed Inclusion

If your transaction makes it into Ethereum block 20,000,000, it **will** appear in the Facet block for that same 12s slot (the block whose L1 attributes reference that L1 block). No sequencer or admin can change this ordering.

## Transaction Ordering Rules

**Within each Facet block:**

1. Transactions are ordered exactly as they appear in the corresponding L1 block
2. If L1 block has transactions at positions 42, 87, and 203 going to `0xface7`, they appear in that exact order in the Facet block
3. No reordering, no prioritization, no MEV extraction by sequencers

**Key Properties:**

* **Deterministic**: Given an L1 block, anyone can derive the exact Facet block that corresponds to its slot; additional filler blocks may exist for slots without an L1 block
* **Immutable**: The inbox address is an EOA, not a contract—no upgrade mechanism exists
* **Permissionless**: Anyone who can get a transaction into L1 can get a transaction into Facet

## Why EOA Instead of Smart Contract?

Traditional rollups use smart contracts for their inbox, which enables:

* Disabling forced inclusion via upgrade
* Changing gas metering parameters
* Adding censorship logic

Facet uses `0x00..00face7`, an EOA with no known private key:

* Cannot be upgraded
* Cannot implement logic
* Cannot discriminate between transactions
* Will accept transactions forever

## Comparison

| Aspect                    | Traditional Rollups          | Facet                                           |
| ------------------------- | ---------------------------- | ----------------------------------------------- |
| **Transaction ordering**  | Sequencer decides            | L1 block order                                  |
| **Inbox type**            | Smart contract (upgradeable) | EOA (immutable)                                 |
| **MEV extraction**        | Sequencer captures value     | Goes to L1 validators                           |
| **Censorship resistance** | Depends on sequencer/admins  | Same as Ethereum                                |
| **Block time**            | 1-2 seconds                  | 12 seconds (slots; filler blocks when L1 skips) |

## Trade-offs

By inheriting L1's sequencing:

* **Slower blocks**: 12 seconds instead of 2
* **Higher submission costs**: Full L1 transaction fees
* **No soft confirmations**: Must wait for L1 inclusion

In exchange:

* **Truly unstoppable**: If Ethereum lives, Facet lives
* **No sequencer MEV**: Value flows to L1 validators
* **Perfect L1 alignment**: State transitions match L1 blocks


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.facet.org/immutable-sequencing/introduction.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
