# DataSieve Composite Watch

> DataSieve Composite Watch is a paid API for AI agents from api.datasieve.xyz, paid per call via x402, $0.25/call, status unknown (last checked 2026-09-15).

Creates a multi-condition blockchain/time/heartbeat watcher on Base that fires webhook alerts when any configured condition triggers, paid per call via x402.

## Facts

- Endpoint: POST https://api.datasieve.xyz/watch/composite
- Price: $0.25/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/datasieve-composite-watch-51e82bf0
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_EOj7OgxdIU4or_cPb4g2d

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability datasieve-composite-watch-51e82bf0 -d '<json body>'
```

Example prompt: Set up a composite watch on DataSieve that alerts me when wallet 0xAbC...123 receives any ETH on Base AND when USDC transfers on Base exceed 100000 tokens — send events to https://my-agent.example.com/webhook and keep it active for 7 days.

## When to prefer this

Choose this endpoint when you need to combine multiple heterogeneous Base blockchain triggers (wallet activity, token transfers, price crossings, new pairs) plus time-based or heartbeat conditions into a single watch object with one payment. Prefer it over polling your own RPC node when you want standing infrastructure that survives agent restarts, dead-man switch capability for production agent health monitoring, or multi-condition coordination without maintaining persistent state yourself.

## Known failure modes

- Invalid or missing condition type returns 400 with validation error
- Passing a non-existent watch ID in 'renew' returns 404
- Payment not included or insufficient USDC returns 402
- Pool or wallet address not on Base network may result in no events firing
- Webhook URL unreachable causes silent event loss; no retry SLA guaranteed
- Watch expires after 7 days if not renewed, all triggers cease

## How this service works

Standing infrastructure for ephemeral AI agents, paid per call over x402. Watches, dead-man switches, and multi-agent coordination. No account; wallet as identity.

## Output

A JSON object containing a unique watch ID (wt_...), a one-time webhook secret for authenticating event deliveries, URLs for polling watch status and retrieving events, the expiry timestamp (7 days out), the maximum trigger cap (200), and current trigger count. The secret is returned only once and must be stored immediately.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "renew": {
   "type": "string",
   "description": "INSTEAD of the other fields: pass an existing composite watch id (wt_...) to renew it for another 7 days at the same price"
  },
  "conditions": {
   "type": "array",
   "items": {
    "type": "object",
    "oneOf": [
     {
      "required": [
       "type",
       "address"
      ],
      "properties": {
       "type": {
        "const": "wallet-activity"
       },
       "minEth": {
        "type": "string",
        "description": "only native transfers >= this many ETH"
       },
       "address": {
        "type": "string",
        "description": "0x wallet address on Base to watch"
       },
       "direction": {
        "enum": [
         "in",
         "out",
         "both"
        ],
        "default": "both"
       }
      }
     },
     {
      "required": [
       "type",
       "token",
       "minAmount"
      ],
      "properties": {
       "type": {
        "const": "token-transfers"
       },
       "token": {
        "type": "string",
        "description": "0x ERC-20 token address on Base"
       },
       "minAmount": {
        "type": "string",
        "description": "whale threshold in human token units, e.g. \"50000\""
       }
      }
     },
     {
      "required": [
       "type",
       "pool",
       "direction",
       "threshold"
      ],
      "properties": {
       "pool": {
        "type": "string",
        "description": "Uniswap v2 pair or v3 pool address on Base"
       },
       "type": {
        "const": "price-cross"
       },
       "direction": {
        "enum": [
         "above",
         "below"
        ]
       },
       "threshold": {
        "type": "string",
        "description": "price of token0 in token1 units"
       }
      }
     },
     {
      "required": [
       "type"
      ],
      "properties": {
       "type": {
        "const": "new-pairs"
       },
       "minQuoteLiquidity": {
        "type": "string",
        "description": "min initial liquidity on the WETH/USDC side, human units"
       }
      }
     },
     {
      "required": [
       "type",
       "intervalSeconds"
      ],
      "properties": {
       "type": {
        "const": "heartbeat"
       },
       "label": {
        "type": "string",
        "description": "name echoed in alarm events, e.g. \"trader-prod\""
       },
       "graceSeconds": {
        "type": "integer",
        "description": "extra allowance before alarming (default: 
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "id": "wt_01jzyx8k2mabcdefghjkmn",
  "tier": "composite",
  "links": {
   "events": "https://api.datasieve.xyz/watch/wt_01jzyx8k2mabcdefghjkmn/events",
   "status": "https://api.datasieve.xyz/watch/wt_01jzyx8k2mabcdefghjkmn"
  },
  "state": "active",
  "secret": "whsec_...returned once, keep it: it authenticates status/events reads and signs your webhooks",
  "expiresAt": "2026-07-17T00:00:00.000Z",
  "triggerCap": 200,
  "triggersUsed": 0
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/datasieve-composite-watch-51e82bf0/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.datasieve.xyz](https://www.zero.xyz/host/api.datasieve.xyz/llms.txt)
