# Sending Transactions

A unique advantage of Facet is that users post Facet transactions directly on Ethereum, so you do not need to "bridge in" value before using Facet, and you do not have to change your wallet's connection away from Ethereum.

<figure><img src="/files/v41jiz89bLzBoQRsEM8q" alt=""><figcaption><p>Metamask's Network Selector</p></figcaption></figure>

## Basic Transactions

Applications (Apps) on Facet abstract the complexity involved with operating on the rollup by constructing regular Ethereum "envelope" transactions for users to sign. Here's the process:

{% stepper %}
{% step %}
**User Connects to an App**

User connects their preferred Ethereum wallet to a Facet App in the same way they would with any Ethereum App.
{% endstep %}

{% step %}
**App Constructs a Transaction**

When the user initiates a transaction (e.g. a swap on a DEX), the App creates a regular Ethereum transaction for the user to sign. This transaction is configured to send "TO" the Facet inbox address:

```
0x00000000000000000000000000000000000face7
```

{% endstep %}

{% step %}
**App Encodes the Facet Payload**

The App encodes the user's Facet intent as a "payload" within the transaction's calldata (e.g., swap *X* amount of wETH for wUSDC). The Dapp presents this transaction for the user to review/sign.

<img src="/files/2ZdlnHHnlOVJ9VUWtUys" alt="" data-size="original">

{% hint style="info" %}
**Note:** The plain English payload shown above is a simplified representation. The actual payload will be encoded in hexadecimal format, which is necessary for it to be processed on the blockchain. Learn more in [Facet Transaction Structure](/immutable-sequencing/transaction-spec.md).
{% endhint %}
{% endstep %}

{% step %}
**User Signs the Transaction**

The transaction is approved/signed by the user via the wallet interface, the same user experience as an Ethereum App. Since this transaction is sent on Ethereum, the user pays gas using L1 ether. Fees are lower than calling L1 contracts, but remain sensitive to L1 congestion and the size of the calldata payload sent to the Facet inbox address.
{% endstep %}

{% step %}
**Transaction Execution**

Upon signing, the transaction is sent to the Ethereum network. Once the transaction is secured in an L1 block through Ethereum's native consensus, the Facet payload is processed by Facet nodes, updating Facet state accordingly. The L1 envelope transaction must set ETH `value = 0`; the Facet payload may specify an L2 `value` (in FCT) that transfers along with the call on Facet.
{% endstep %}

{% step %}
**Apps Read State**

Apps (in this case, a DEX) query the latest state from a Facet node, reflecting the user's reduced wETH balance and increased wUSDC balance.
{% endstep %}
{% endstepper %}


---

# 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/sending-transactions.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.
