Skip to main content


Within CoW Protocol, intents are the way that a user expresses their desired swap outcome.


The parameters required for an intent can be broken down into three categories:

Batch auction

  • tokens to swap (i.e. sellToken and buyToken)
  • amounts to swap (i.e. sellAmount and buyAmount)
  • kind of swap (i.e. sell or buy)
  • partial fillability (i.e. true or false)
  • fees payable to the protocol (i.e. feeAmount)

Co-ordination / Settlement

  • address to send the tokens to (i.e. receiver of the buyToken)
  • validity of the order (i.e. validTo)
  • source of the sellToken (i.e. sellTokenBalance)
  • destination of the buyToken (i.e. buyTokenBalance)


  • application specific data (i.e. appData)

Some parameters that are of primary consideration for co-ordination / settlement may be of secondary consideration for the batch auction. For example, the receiver of the buyToken may be set to another address which requires storage slot to be initialized from zero, increasing the gas cost of the transaction and impacting the solution to the batch-optimization problem.