Overview
TheOrderSigningUtils class provides cryptographic utilities for signing CoW Protocol orders and cancellations according to EIP-712 specifications. It supports multiple signing schemes including standard wallets and smart contract wallets.
Installation
Usage
All methods are static and can be called directly on the class.Methods
signOrder
Sign an order intent using EIP-712.UnsignedOrder
required
Unsigned order to sign
SupportedChainId
required
Chain ID (e.g., 1 for Mainnet, 100 for Gnosis Chain)
Signer
required
Wallet signer instance
SigningResult
Signature and signing scheme
Example
signOrderCancellation
Sign a cancellation for a single order.string
required
Unique order identifier to cancel
SupportedChainId
required
Chain ID
Signer
required
Signer who created the order
SigningResult
Signature and signing scheme
Example
signOrderCancellations
Sign a cancellation for multiple orders in a single signature.string[]
required
Array of order UIDs to cancel
SupportedChainId
required
Chain ID
Signer
required
Signer who created the orders
SigningResult
Signature and signing scheme
More gas-efficient than signing cancellations individually when cancelling multiple orders.
Example
getDomain
Get EIP-712 typed domain data for a chain.SupportedChainId
required
Chain ID
TypedDataDomain
EIP-712 domain data
Example
getDomainSeparator
Get the domain separator hash.SupportedChainId
required
Chain ID
string
Hex-encoded domain separator hash
Example
generateOrderId
Generate deterministic order ID from order data.SupportedChainId
required
Chain ID
Order
required
Order data
{ owner: string }
required
Order parameters with owner address
object
Order ID and digest
Example
getEIP712Types
Get the EIP-712 type definitions for CoW Protocol orders.object
EIP-712 type definitions
Example
getEip1271Signature
Encode order and ECDSA signature for EIP-1271 verification.UnsignedOrder
required
Order to encode
string
required
ECDSA signature (65 bytes)
string
ABI-encoded signature for EIP-1271
Useful for smart contract wallets that implement EIP-1271 signature verification.
Example
encodeUnsignedOrder
Encode unsigned order for hashing.UnsignedOrder
required
Order to encode
Record<string, string>
Encoded order fields
Example
Signing Schemes
CoW Protocol supports multiple signing schemes:EIP-712 (Default)
Standard wallet signature using typed structured data.EthSign (EIP-191)
Legacy signing method usingeth_sign.
Pre-sign
For smart contract wallets that cannot sign directly.EIP-1271
For contracts implementing EIP-1271 signature verification.Integration Examples
With OrderBookApi
With TradingSdk
Cancelling Orders
Error Handling
Best Practices
- Always verify chain ID - Incorrect chain ID results in invalid signatures
- Set global adapter - Required for utilities to function properly
- Use typed data (EIP-712) - More secure than eth_sign
- Batch cancellations - Use
signOrderCancellationsfor multiple orders - Handle rejections - Users can deny signature requests
See Also
- TradingSdk - High-level trading interface
- OrderBookApi - Order book API client
- MetadataApi - Order metadata management
- EIP-712 Specification
- EIP-1271 Specification