Skip to main content

Documentation Index

Fetch the complete documentation index at: https://cowswap-mintlify-docs-quality-audit-1774257282.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Run Command

Start the CoW Protocol Watch Tower to monitor and execute programmatic orders across configured blockchain networks.

Usage

watch-tower run [options]

Options

—config-path

Type: string Default: ./config.json Path to the chain configuration file defining networks to monitor and their settings. Environment variable: CONFIG_PATH

—only-owner

Type: string[] Addresses of contracts or safes to monitor. Specify multiple times for multiple owners. Addresses must be valid hex-prefixed Ethereum addresses. Example: --only-owner 0x1234... --only-owner 0x5678...

—database-path

Type: string Default: ./database Path to the database directory for Watch Tower state storage. Environment variable: DATABASE_PATH

—log-level

Type: string Default: INFO Log level controlling output verbosity. Environment variable: LOG_LEVEL

—dry-run

Type: boolean Default: false Run without publishing orders to the OrderBook API. Ideal for testing and validation. Environment variable: DRY_RUN

—one-shot

Type: boolean Default: false Execute once and exit immediately. Useful for testing or cron-based execution. Environment variable: ONE_SHOT

—disable-api

Type: boolean Default: false Disable the REST API server entirely. Environment variable: DISABLE_API

—api-port

Type: number Default: 8080 Port for the REST API server when enabled. Environment variable: API_PORT

—silent

Type: boolean Default: false Disable notifications and use local logging only. Conflicts with --slack-webhook. Environment variable: DISABLE_NOTIFICATIONS

—slack-webhook

Type: string Slack webhook URL for sending notifications. Incompatible with --silent. Environment variable: SLACK_WEBHOOK

Examples

Basic usage

watch-tower run

Custom configuration

watch-tower run --config-path ./my-config.json --database-path ./my-db

Monitor specific owners

watch-tower run --only-owner 0x1234567890abcdef1234567890abcdef12345678 \
  --only-owner 0xabcdefabcdefabcdefabcdefabcdefabcdefabcd

Dry run mode

watch-tower run --dry-run

One-shot execution

watch-tower run --one-shot

With Slack notifications

watch-tower run --slack-webhook https://hooks.slack.com/services/YOUR/WEBHOOK/URL

Custom API port

watch-tower run --api-port 3000

Environment variables

export CONFIG_PATH=./my-config.json
export DATABASE_PATH=./my-db
export LOG_LEVEL=DEBUG
export DRY_RUN=true
export SLACK_WEBHOOK=https://hooks.slack.com/services/YOUR/WEBHOOK/URL

watch-tower run
Last modified on March 23, 2026