# CoW Protocol Documentation > The leading intents-based DEX aggregation protocol This file contains links to documentation sections following the llmstxt.org standard. ## Table of Contents - [Welcome](/index.md): CoW DAO is on a mission to innovate the most user-protective products in Ethereum. - [CoW Protocol](/cow-protocol.md): CoW Protocol is a meta-DEX aggregation protocol that leverages trade intents and fair combinatorial batch auctions to find users better prices for ... - [CoW Swap Affiliate Program](/cow-protocol/affiliate-program.md): The CoW Swap Affiliate Program rewards affiliates and referred traders when referred wallets generate qualifying trading volume on CoW Swap. Reward... - [Affiliate Program FAQ](/cow-protocol/affiliate-program/faq.md): A 6-month pilot program that rewards affiliates who refer new retail traders when those referred wallets generate qualifying CoW Swap trading volum... - [Additional benefits](/cow-protocol/concepts/benefits/additional-benefits.md): CoW Protocol's intent-based trading model and its auction mechanism that allows for batching provide a number of benefits, including support for ex... - [MEV protection](/cow-protocol/concepts/benefits/mev-protection.md): One of the main benefits of CoW Protocol is comprehensive MEV protection for every order. - [Price improvement](/cow-protocol/concepts/benefits/price-improvement.md): In addition to MEV protection, another major benefit of CoW Protocol is optimal price execution that leads to price improvement and order surplus. - [Trade any intent](/cow-protocol/concepts/benefits/trade-any-intent.md): CoW Protocol allows users to express any type of trade intent on Ethereum and EVM-compatible chains, leveraging solvers to execute the transactions... - [What is a flash loan?](/cow-protocol/concepts/flash-loans/Introduction.md): A flash loan is a unique type of loan that is borrowed and repaid atomically within a single transaction on the blockchain. - [How does it work?](/cow-protocol/concepts/flash-loans/how-it-works.md): A flash loan typically happens in the following steps: - [How to specify an order with flash loan](/cow-protocol/concepts/flash-loans/integrators.md): The flash loan is encoded into the appData's metadata as an optional object. This information serves as a hint for the solver, but the solver ultim... - [Coincidence of Wants](/cow-protocol/concepts/how-it-works/coincidence-of-wants.md): **CoW (Coincidence of Wants)**: An economic phenomenon where two parties - each holding the asset that the other needs - exchange assets directly i... - [Flow of an order](/cow-protocol/concepts/how-it-works/flow-of-an-order.md): Rather than creating executable on-chain transactions, CoW Protocol users submit their orders as signed *intent to trade* messages. This allows sol... - [How Intents Are Formed](/cow-protocol/concepts/how-it-works/how-intents-are-formed.md): An _intent_ in CoW Protocol is a signed message that represents a user's wish to trade. It doesn't execute a trade directly — instead, it delegates... - [CoW Protocol vs. CoW Swap](/cow-protocol/concepts/how-it-works/protocol-vs-swap.md): While the two are intertwined, there are important differences between CoW Protocol and CoW Swap. - [Fair Combinatorial Batch Auction](/cow-protocol/concepts/introduction/fair-combinatorial-auction.md): CoW Protocol collects and aggregates intents off-chain and auctions them off to solvers. The auction is combinatorial because each solver can submi... - [Intents](/cow-protocol/concepts/introduction/intents.md): Rather than placing orders by _**signing a raw transaction**_ that executes directly on-chain (i.e. as happens on Uniswap or SushiSwap), CoW Protoc... - [Solvers](/cow-protocol/concepts/introduction/solvers.md): CoW Protocol delivers optimal price outcomes by leveraging an open solver competition for order matching. - [CoW Hooks](/cow-protocol/concepts/order-types/cow-hooks.md): CoW Hooks allow users to pair any Ethereum action (or set of actions) with an order on CoW Protocol, leveraging the solvers to execute the actions ... - [Limit orders](/cow-protocol/concepts/order-types/limit-orders.md): Limit orders are orders to buy or sell tokens at a specified price before a certain expiration date. - [Market orders](/cow-protocol/concepts/order-types/market-orders.md): Market orders are orders to buy or sell tokens as soon as possible at the current market rate. - [Milkman orders](/cow-protocol/concepts/order-types/milkman-orders.md): Milkman is an order placement mechanism developed by Yearn Finance in collaboration with CoW Protocol through the CoW DAO Grants program. - [Repay debt with collateral using flash loans](/cow-protocol/concepts/order-types/pay-debt-flash-loans.md): A key use case of flash loans is the ability to repay debt with collateral, since flash loans allow users to close or reduce their debt positions w... - [Programmatic orders](/cow-protocol/concepts/order-types/programmatic-orders.md): In addition to normal wallets, CoW Protocol also supports smart contract wallets that implement `ERC-1271`. This allows users to place orders throu... - [TWAP orders](/cow-protocol/concepts/order-types/twap-orders.md): Time-Weighted Average Price (TWAP) orders are an advanced order type available on CoW Protocol that breaks up a large order into several smaller pi... - [Atomic Bundles](/cow-protocol/concepts/order-types/wrappers.md): Atomic Bundles (formerly known as Generalized Wrappers) are a new framework to allow custom logic to execute before and/or after order settlement o... - [Integrate CoW Protocol](/cow-protocol/integrate.md): CoW Protocol offers multiple integration approaches to suit different development needs and use cases. Whether you're building a DeFi application, ... - [API Integration](/cow-protocol/integrate/api.md): The CoW Protocol API provides direct access to the protocol's functionality through RESTful endpoints. This approach offers maximum flexibility and... - [SDK Integration](/cow-protocol/integrate/sdk.md): The CoW SDK provides programmatic access to CoW Protocol's functionality, enabling you to build custom trading applications with full control over ... - [Widget Integration](/cow-protocol/integrate/widget.md): The CoW Widget is the fastest way to integrate CoW Protocol's trading functionality into your application. It provides a complete, pre-built tradin... - [Atomic Bundle Integration](/cow-protocol/integrate/wrappers.md): Atomic Bundles (formerly known as Generalized Wrappers) enable custom logic to execute surrounding CoW Protocol settlements. This guide covers both... - [Driver API](/cow-protocol/reference/apis/driver.md): Driver API - [Order book API](/cow-protocol/reference/apis/orderbook.md): Order book API - [Solver API](/cow-protocol/reference/apis/solver.md): Solver API - [Core](/cow-protocol/reference/contracts/core.md): Core contracts of CoW Protocol are those that are necessary for the protocol to function. - [GPv2AllowlistAuthentication](/cow-protocol/reference/contracts/core/allowlist.md): CoW Protocol was previously known as Gnosis Protocol v2. It is for this reason that deployed contracts are prefixed GPv2. - [GPv2Settlement](/cow-protocol/reference/contracts/core/settlement.md): CoW Protocol was previously known as Gnosis Protocol v2. It is for this reason that deployed contracts are prefixed GPv2. - [GPv2VaultRelayer](/cow-protocol/reference/contracts/core/vault-relayer.md): CoW Protocol was previously known as Gnosis Protocol v2. It is for this reason that deployed contracts are prefixed GPv2. - [Periphery](/cow-protocol/reference/contracts/periphery.md): Peripheral contracts are those that are not necessary for CoW Protocol to function, but are used to enhance user experience. - [ComposableCoW](/cow-protocol/reference/contracts/periphery/composable-cow.md): ComposableCoW is a framework for smoothing the developer experience when building conditional orders on CoW Protocol. Conditional orders are a subs... - [CoWUidGenerator](/cow-protocol/reference/contracts/periphery/cow-uid-generator.md): A helper contract for calculating the same EIP-712 signature hash for a given user order that the GPv2SettlementContract expects. - [Eth-flow](/cow-protocol/reference/contracts/periphery/eth-flow.md): As CoW Protocol only supports `ERC-20 tokens`, this means that if a user wants to sell `ETH` on CoW Protocol, they need to: - [Flash Loans](/cow-protocol/reference/contracts/periphery/flashloans.md): Flash loans are handled through contracts implementing the following two interfaces: `IBorrower` and `IFlashLoanRouter`. - [HooksTrampoline](/cow-protocol/reference/contracts/periphery/hooks-trampoline.md): A helper contract that may be used by solvers to securely execute user's hooks within the settlement transaction. - [Atomic Bundles](/cow-protocol/reference/contracts/periphery/wrapper.md): Atomic Bundles (formerly known as Generalized Wrappers) are smart contracts that enable custom logic to execute before and after CoW Protocol settl... - [TWAP](/cow-protocol/reference/contracts/programmatic/twap.md): A simple _time-weighted average price_ (TWAP) trade may be thought of as `n` smaller trades happening every `t` time interval, commencing at time... - [Auction mechanism](/cow-protocol/reference/core/auctions.md): CoW Protocol uses an implementation of the 'Fair Combinatorial Auction' for executing trades. Within a given auction, the goal is to compute prices... - [Solver competition accounting process](/cow-protocol/reference/core/auctions/accounting.md): There is an accounting process in place for the solver competition. It is performed separately on each chain. Currently, the execution of the accou... - [Setting up a bonding pool](/cow-protocol/reference/core/auctions/bonding-pools.md): The first step for setting up a bonding pool is to deploy a Gnosis safe on Mainnet with only the CoW DAO safe as a signer, as is described in CIP-7. - [Solver competition rules](/cow-protocol/reference/core/auctions/competition-rules.md): All solvers participating in the solver competition must abide by certain rules. In this section, we outline all these rules. They naturally split ... - [EBBO violations: details](/cow-protocol/reference/core/auctions/ebbo-rules.md): In this section, we will elaborate on the details about what consistutes an EBBO violation, and what actions are taken by the DAO in case such a vi... - [Solver rewards](/cow-protocol/reference/core/auctions/rewards.md): The protocol is currently subsidizing the solver competition on all chains it operates on, by rewarding solvers on a weekly basis (currently, every... - [Schemas](/cow-protocol/reference/core/auctions/schema.md): The purpose of this section is to provide an overview of the main API of the solve engine. - [What is solving? A mathematical, high-level description](/cow-protocol/reference/core/auctions/the-problem.md): At a high level, a solver is an algorithm that takes as inputs the orders that are valid for an auction, the state of the liquidity sources that th... - [Definitions](/cow-protocol/reference/core/definitions.md): A user's desire to swap `sellAmount` of `sellToken` for `buyAmount` of `buyToken`. This is non-prescriptive, and allows for the execution path to b... - [Intents](/cow-protocol/reference/core/intents.md): Within CoW Protocol, intents are the way that a user expresses their desired swap outcome. - [Application specific data](/cow-protocol/reference/core/intents/app-data.md): There are times when attaching additional information to an order is useful. For example: - [Hooks](/cow-protocol/reference/core/intents/hooks.md): The CoW Hooks feature allows users to request the solvers to execute user-defined Ethereum calls (also known as an "inner/internal transaction") be... - [Signing schemes](/cow-protocol/reference/core/signing-schemes.md): As CoW Protocol handles user's orders that were provided off-chain, the authenticity of a user's order needs to be asserted. Authenticity is assert... - [Supported tokens](/cow-protocol/reference/core/tokens.md): CoW Protocol supports `ERC-20` tokens. However, not all `ERC-20` token contracts are created equal, despite the idea of a standard interface. Some ... - [CoW SDK](/cow-protocol/reference/sdks/cow-sdk.md): The SDK supports all CoW Protocol enabled networks: - [Arbitrating auctions](/cow-protocol/tutorials/arbitrate.md): This section gives a high level overview of the different components that are involved for CoW protocol batch auctions to take place. - [Autopilot](/cow-protocol/tutorials/arbitrate/autopilot.md): The autopilot is the engine that drives forward CoW Protocol. - [Order book](/cow-protocol/tutorials/arbitrate/orderbook.md): The orderbook is the main API that traders, UIs and other integrations use to interact with CoW Protocol. - [Driver](/cow-protocol/tutorials/arbitrate/solver/driver.md): People interested in running a solver to participate in CoW Protocol mainly want to focus on implementing the most efficient solver engine. However... - [Solver Engine](/cow-protocol/tutorials/arbitrate/solver/solver-engine.md): The Solver Engine implements the matching system of the CoW Protocol batch auction. As part of the auction lifecycle, it receives a request from th... - [Building on CoW Protocol](/cow-protocol/tutorials/building.md): So, you want to build on top of CoW Protocol? Great! We are excited to see what you will build. - [Viewing orders](/cow-protocol/tutorials/cow-explorer.md): As CoW Protocol utilizes an off-chain orderbook, and settles on-chain, getting a holistic view of the current state of CoW Protocol requires a comb... - [By user address](/cow-protocol/tutorials/cow-explorer/address.md): A user may want to see the details of all orders that they have placed. When searching for their address, they will be presented with an overview o... - [By batch auction](/cow-protocol/tutorials/cow-explorer/batch-auction.md): A batch auction is settled on-chain as a single transaction, and it is this transaction hash that is used to query the details of the batch auction... - [By order](/cow-protocol/tutorials/cow-explorer/order.md): A user may want to see the details of a specific order that they have placed. They can search for this order by its unique identifier, the... - [CoW Swap](/cow-protocol/tutorials/cow-swap.md): CoW Swap is the first interface built on top of CoW Protocol and serves as a reference implementation for developers wishing to build user interfac... - [CoW Swap deeplinks: swaps and limit orders](/cow-protocol/tutorials/cow-swap/custom-links.md): Create CoW Swap limit-order deeplinks from natural-language requests, with price conversion, exact-buy and exact-sell examples, token units, and su... - [Flash loans](/cow-protocol/tutorials/cow-swap/flash-loans.md): We’ll walk through a concrete example of a debt repayment using flash loans on Sepolia. - [Limit orders](/cow-protocol/tutorials/cow-swap/limit.md): CoW Protocol supports limit orders, where users are able to buy or sell tokens at a specified price or better. - [Native tokens](/cow-protocol/tutorials/cow-swap/native.md): In blockchain networks the "native token" - for example, Ether (ETH) on Ethereum, Arbitrum One and Base, and xDAI (xDAI) on Gnosis Chain - is the p... - [Cross-chain swaps](/cow-protocol/tutorials/cow-swap/swap-and-bridge.md): The **Cross-chain swaps** feature on swap.cow.fi lets you swap a token on one network and receive a different token on another network — all in one... - [Market orders (swap)](/cow-protocol/tutorials/cow-swap/swap.md): Swapping is the bread and butter of CoW Protocol! Let's swap some tokens! - [TWAP orders](/cow-protocol/tutorials/cow-swap/twap.md): Time-Weighted Average Price (TWAP) orders are an advanced feature of CoW Protocol, ideal for executing large trades with minimal price impact by di... - [CoW Hook dApp](/cow-protocol/tutorials/hook-dapp.md): **Hook dApp** - is an application that allows you to conveniently program an order to perform any action before or after a swap. - [How to execute flashloans orders](/cow-protocol/tutorials/solvers/flashloans_support.md): This short tutorial explains how orders with flashloans hints can be executed by solvers. - [Locally testing a solver with the CoW Protocol orderflow](/cow-protocol/tutorials/solvers/local_test.md): CoW Protocol infrastructure is a lot of services running together in herd harmony, which is a bit intimidating at the beginning. Before proceeding,... - [Joining The CoW Protocol Solver Competition](/cow-protocol/tutorials/solvers/onboard.md): > **_NOTE:_** In order to get connected to the shadow competition, feel free to reach out to an admin of the "CoW Swap Solvers" group on Telegram. - [Recommended Bidding Strategy for Solvers](/cow-protocol/tutorials/solvers/optimal-bidding.md): This guide describes a recommended bidding strategy for solvers in CoW Protocol’s combinatorial auction, that is, the bid each solver should submit... - [Getting new routes integrated Into CoW Protocol](/cow-protocol/tutorials/solvers/routes_integration.md): This guide is designed for teams building in DeFi who want to get their routes integrated and supported by CoW Protocol. Integration of new liquidi... - [Parallel Settlement Submission](/cow-protocol/tutorials/solvers/solver-7702-delegate.md): Configure Solver7702Delegate and ERC-7702 auxiliary accounts for parallel settlement submission. - [Swap in Safe Apps](/cow-protocol/tutorials/swap-in-safe-app.md): With over 100 Billon secured assets, Safe is a multi-signature wallet that allows users to manage their assets in a secure and decentralized way. - [CoW Swap Widget](/cow-protocol/tutorials/widget.md): Integrate the power of `CoW Swap` into your product! With the widget, you can create an incredible trading interface. Specify the required pair of ... - [Governance](/governance.md): > This site represents the current governance structure of CoW DAO. - [Fees](/governance/fees.md): This documentation refers to CoW Protocol fees. - [Partner fee](/governance/fees/partner-fee.md): The Partner Fee is calculated as the sum of all transactions traded through your integration with CoW Protocol with Partner Fee defined in the... - [CoW Grants Program Overview](/governance/grants.md): The CoW Grants Program (CGP) funds initiatives that support the growth of the CoW Protocol ecosystem, aligned with the CoW DAO mission statement. - [Grant Types](/governance/grants/grant-types.md): The CoW Grants Program offers different types of grants to accommodate various project needs. Understanding the differences will help you choose th... - [How to Apply for a Grant](/governance/grants/how-to-apply.md): This page provides an overview of the application process. For complete details, please refer to the official Process Guide on the forum. - [Program Structure](/governance/grants/program-structure.md): The CoW Grants Program operates under a structured governance framework as defined in CIP-82, which renewed the program for 2026. - [Mission statement](/governance/mission.md): CoW DAO is an open organization of developers, market makers, and community contributors on a mission to create a fairer, more-protective financial... - [Multisigs](/governance/multisigs.md): CoW DAO uses Safe to manage its funds and operations. The following safes are currently deployed: - [Governance Process](/governance/process.md): > This site represents the current governance structure of CoW DAO. - [CIP Template](/governance/process/template.md): > 📜 This template is to be used to create any new CoW DAO Improvement Proposal. - [Snapshot (Voting)](/governance/snapshot.md): CoW DAO uses Snapshot for voting on CoW DAO Improvement Proposals (CIPs). Votes on snapshot are weighted by the number of vCOW+COW held, or delegat... - [Token](/governance/token.md): At the core of CoW Protocol lies the COW token, which serves as a governance token within the CoW Protocol ecosystem, allowing stakeholders to part... - [LLMs.txt](/llms.md): CoW DAO documentation follows the llmstxt.org standard, making it easy for AI tools and large language models to understand our documentation.