Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions docs/cow-protocol/concepts/introduction/solvers.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,20 @@ CoW Protocol delivers optimal price outcomes by leveraging an open solver compet

![Solvers](/img/concepts/solvers.png)

Solvers are bonded third parties that execute trades on behalf of users through an [intent-based delegated execution model](intents).
Solvers are independent, bonded participants that compete to construct valid settlement solutions for user-signed intents through CoW Protocol's [intent-based delegated execution model](intents).

Once a user submits an [intent](intents), the protocol groups it alongside other intents in a batch auction.
As soon as a batch is "closed for orders", meaning that it stops considering new orders, the protocol runs a [competition](/cow-protocol/reference/core/auctions) where solvers submit solutions for the intents in the batch.

Whichever solver offers the best [solution](/cow-protocol/reference/core/auctions/the-problem#solution) for the batch auction (defined as the solver that provides the most surplus to user orders) gets to execute the orders.
The solver whose [solution](/cow-protocol/reference/core/auctions/the-problem#solution) generates the greatest surplus for the batch is selected to submit the winning settlement solution.

Solvers are compensated in COW tokens for settling batches, incentivizing them to compete to find better prices and win the right to execute user intents.
Solvers are compensated in COW tokens for successful settlement submissions, incentivizing them to compete to find better prices and submit valid solutions for user-signed intents.

## How Solvers Work

Solvers can move tokens on behalf of the user using the `ERC-20` approvals that the user granted to the [vault relayer](/cow-protocol/reference/contracts/core/vault-relayer) contract.
The [settlement](/cow-protocol/reference/contracts/core/settlement) contract, meanwhile, verifies the signature of the user's intent and ensures that execution happens according to the limit price and quantity specified by the user.

Solvers do not receive ERC-20 approvals from users. Token transfers occur through the protocol’s smart contracts, using the ERC-20 approvals that users grant to the [vault relayer](/cow-protocol/reference/contracts/core/vault-relayer) contract. The [settlement](/cow-protocol/reference/contracts/core/settlement) contract verifies each user’s signed intent and enforces the applicable limit price, quantity and settlement constraints.

Anyone with some DeFi knowledge and ability to code an optimizations algorithm can create a solver.
Loading