# Basic Transaction Flow

This guide explains the technical flow of Facet transactions. For conceptual understanding of immutable sequencing, see [Immutable Sequencing](/immutable-sequencing/introduction.md).

## Transaction Lifecycle

<figure><img src="/files/kiHePexbMIuW7kvZF1IY" alt=""><figcaption></figcaption></figure>

### 1. Transaction Creation

Users create Facet transactions by:

* Constructing an RLP-encoded Facet transaction
* Wrapping it in an Ethereum L1 transaction
* Sending to the Facet inbox address: `0x00000000000000000000000000000000000face7`

See [Facet Transactions](/immutable-sequencing/transaction-spec.md) for detailed formatting.

### 2. L1 Submission

The Ethereum transaction containing the Facet payload:

* Gets included in the L1 mempool
* Is sequenced by Ethereum validators
* Becomes part of L1 block history

### 3. Node Processing

Facet nodes:

* Monitor L1 for transactions to the inbox address
* Extract Facet payloads from calldata
* Also monitor for contract-emitted events with Facet topic

### 4. State Computation

Using the ordered transactions from L1:

* Facet nodes execute transactions through facet-geth
* State is computed deterministically
* Results are stored locally by each node

### 5. State Queries

Applications and users:

* Connect to Facet RPC endpoints
* Query current state using standard Ethereum RPC methods
* Receive responses from facet-geth

## Technical Implementation

### Creating Transactions

* [Transaction Specification](/immutable-sequencing/transaction-spec.md) - Transaction formats and encoding

### Running Infrastructure

* [Running a Facet Node](/guides/running-a-facet-node.md) - Node setup guide
* [Chain State Derivation](/reference/chain-state-derivation.md) - How state is computed

### Integration Points

* [Network Information](/reference/network-information.md) - Query endpoints
* [Facet TypeScript SDK](/developer-tools/facet-typescript-sdk.md) - Developer tools


---

# 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/basic-transaction-flow.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.
