> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cow.bleu.builders/llms.txt
> Use this file to discover all available pages before exploring further.

# Flow of an order

> Rather than creating executable on-chain transactions, CoW Protocol users submit their orders as signed  messages. This allows  to find the optimal execution path for the batch of orders before committing them on-chain.

Let's bring all of our main concepts together by taking a look at the flow of an order through CoW Protocol.

<img src="https://mintcdn.com/cowswap/CRuDHZdY9OcJfwkr/images/cow-protocol/concepts/how-it-works/assets/images/flow-of-an-order-3d0c95e27a88df20b9e9000a9e58c5db.png?fit=max&auto=format&n=CRuDHZdY9OcJfwkr&q=85&s=28d7485c84389c5e293173787deb3eb8" alt="Flow of an order through CoW Protocol" width="1600" height="900" data-path="images/cow-protocol/concepts/how-it-works/assets/images/flow-of-an-order-3d0c95e27a88df20b9e9000a9e58c5db.png" />

```mermaid theme={null}
graph TD
    A[1. User signs trade intent] --> B[2. Protocol batches intents]
    B --> C[3. Solvers compete for best settlement]
    C --> D[4. Winning solver executes on-chain]
    D --> E[Users receive tokens]
```

There are 4 main steps to an order on CoW Protocol:

1. Users express their trade intents by signing messages that specify the assets and amounts they want to trade, alongside other parameters.
2. The protocol gathers the intents of multiple users into a [fair combinatorial batch auction](/cow-protocol/explanation/introduction/fair-combinatorial-auction).
3. Solvers have a set amount of time to propose settlements for the batch. The solver that is able to generate the highest amount of surplus for the batch is declared the winner.
4. The winning solver submits the batch transaction on-chain on behalf of the users.

Once the winning solver executes the batch's orders on-chain, users receive their tokens.

The competition between solvers in a batch auction ensures that users (including traders, DAOs, smart contracts, and bots) always receive the best prices for their trades.

Letting solvers do the heavy lifting means users don't have to worry about finding the best liquidity pool, setting the right gas price, or picking the optimal slippage tolerance for their trades. Solvers are also experts at avoiding MEV so users can rest assured their orders are protected from MEV bots that exploit their price through frontrunning and sandwich attacks.
