Skip to main content

Run Command

Start the CoW Protocol Watch Tower to monitor and execute conditional 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 4, 2026