Skip to main content

ComposableCoW Contract

The ComposableCoW contract enables creation and management of programmatic orders on CoW Protocol, supporting both single orders and merkle tree-based authorization for automated trading strategies.

Deployment

Deployed identically across six networks (Ethereum Mainnet, Gnosis Chain, Arbitrum One, Base, Optimism, and Polygon) at address:

State Variables

Primary Functions

Order Creation

  • create() - Authorize a single programmatic order
  • createWithContext() - Authorize with value factory context storage

Merkle Tree Management

  • setRoot() - Set merkle root for batch authorization
  • setRootWithContext() - Set root with value factory context

Order Retrieval

  • getTradeableOrderWithSignature() - Generate discrete orders for CoW Protocol submission

Order Management

  • remove() - Revoke order authorization
  • setSwapGuard() - Apply additional order restrictions

Critical Requirements

  • Safe multisig wallets must use ExtensibleFallbackHandler
  • Handler contracts must implement IConditionalOrderGenerator
  • Token approvals required for the GPv2 Vault Relayer

Authorization Models

Orders may be authorized individually via create() or in batches using merkle proofs, enabling efficient management of multiple programmatic orders.
Last modified on March 12, 2026