Interaction
The interaction module enables CoW Protocol settlements to invoke arbitrary smart contracts, supporting capabilities such as EIP-2612 permit calls for gasless approvals and AMM trades (Uniswap, Balancer, Curve, etc.).
Types
Interaction
Represents a complete smart contract call with three components:
InteractionLike
A flexible partial type requiring only the target address:
Functions
normalizeInteraction
Processes a single interaction, applying default values for optional fields.
normalizeInteractions
Handles arrays of interactions.
Both functions ensure complete, ABI-compatible interaction objects with defaults of 0 for value and "0x" for callData.
Execution Stages
Common Use Cases
Best Practices
- Validate target addresses before constructing interactions
- Use Ethers.js for safe calldata encoding
- Exercise caution with Ether transfers (non-zero
value)
- Test extensively on testnets prior to mainnet use
- Select appropriate stages based on token balance availability
Last modified on March 4, 2026