Skip to main content

Prerequisites

If running your own watch-tower instance, you will need the following:
  • An RPC node connected to one or more supported networks:
    • Ethereum mainnet
    • Arbitrum One
    • Gnosis Chain
    • Base
    • Sepolia (testnet)
    • Avalanche
    • Polygon
    • Linea
    • Plasma
    • Ink
  • Internet access to the CoW Protocol OrderBook API
Conditional order types may consume considerable RPC calls. Ensure your RPC provider can handle the load, or consider running your own node.

Deployment block numbers

The deployment-block parameter refers to the block number at which the ComposableCoW contract was deployed to each respective chain. This is used to optimize the watch-tower by only fetching events from the blockchain after this block number. Refer to Deployed Contracts for the deployment blocks on each chain.

Example deployment blocks

NetworkDeployment Block
Mainnet17883049
Sepolia8468184
Arbitrum One343493668
Base31084679
Gnosis Chain40394915
Avalanche63235114
Polygon72315184
Linea25028604
Plasma4810535
Ink37142449
These block numbers are examples from the config file. Always verify the latest deployment blocks in the Composable CoW repository.

Page size configuration

The pageSize option specifies the number of blocks to fetch from the blockchain when querying historical events (eth_getLogs).

Default setting

The default is 5000, which is the maximum number of blocks that can be fetched in a single request from Infura.

Custom RPC nodes

If you are running the watch-tower against your own RPC node, you may want to set pageSize to 0 to fetch all blocks in one request, rather than paging through multiple requests.
{
  "networks": [
    {
      "name": "mainnet",
      "rpc": "https://your-rpc-endpoint.com",
      "deploymentBlock": 17883049,
      "pageSize": 0
    }
  ]
}
Adjust the pageSize based on your RPC provider’s limits. Some providers may have stricter limits than Infura’s 5000 blocks.

Configuration file

The watch-tower requires a JSON configuration file that specifies:
  • Network configurations
  • RPC endpoints
  • Deployment blocks
  • Filter policies (optional)
See the config.json.example file in the repository for a complete configuration template with all supported networks.

Build docs developers (and LLMs) love