Blockdaemon · Capability

Blockdaemon Chain Watch Events API — Rules and Targets

Manage event-streaming Rules and Targets — webhooks, Kafka, WebSocket destinations — for real-time on-chain event delivery via Blockdaemon Chain Watch.

Run with Naftiko BlockdaemonEventsWebhooksStreaming

What You Can Do

POST
Addrule — Create a rule.
/v1/chain-watch/rules
GET
Findrules — List rules.
/v1/chain-watch/rules

MCP Tools

blockdaemon-list-rules

List all Chain Watch rules.

read-only idempotent
blockdaemon-create-rule

Create a new Chain Watch rule.

blockdaemon-delete-rule

Delete a Chain Watch rule.

idempotent
blockdaemon-list-targets

List Chain Watch targets.

read-only idempotent
blockdaemon-create-target

Create a Chain Watch target (webhook/Kafka/WebSocket).

Capability Spec

events-rules-targets.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Blockdaemon Chain Watch Events API — Rules and Targets
  description: Manage event-streaming Rules and Targets — webhooks, Kafka, WebSocket destinations — for real-time
    on-chain event delivery via Blockdaemon Chain Watch.
  tags:
  - Blockdaemon
  - Events
  - Webhooks
  - Streaming
  created: '2026-05-25'
  modified: '2026-05-25'
binds:
- namespace: env
  keys:
    BLOCKDAEMON_API_KEY: BLOCKDAEMON_API_KEY
capability:
  consumes:
  - type: http
    namespace: events-rules-targets
    baseUri: https://svc.blockdaemon.com
    description: Chain Watch rule and target endpoints.
    resources:
    - name: rules
      path: /chain-watch/v1/rules
      operations:
      - name: findrules
        method: GET
        description: Returns all rules in the system that the user has access to.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters: []
      - name: addrule
        method: POST
        description: Creates a new rule. Duplicate rules are not allowed.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          required: true
    - name: rule-by-id
      path: /chain-watch/v1/rules/{ruleId}
      operations:
      - name: findrulebyid
        method: GET
        description: Returns the rule for the specified ID.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: ruleId
          in: path
          type: string
          required: true
      - name: deleterule
        method: DELETE
        description: Deletes the rule identified by the given ID.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: ruleId
          in: path
          type: string
          required: true
      - name: updaterule
        method: PUT
        description: Update a rule by its ID.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: ruleId
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          required: true
    - name: targets
      path: /chain-watch/v1/targets
      operations:
      - name: findtargets
        method: GET
        description: Returns all targets accessible to the user.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters: []
      - name: addtarget
        method: POST
        description: Creates a new target (webhook/Kafka/WebSocket). Duplicates not allowed.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          required: true
    - name: target-by-id
      path: /chain-watch/v1/targets/{targetId}
      operations:
      - name: findtargetbyid
        method: GET
        description: Fetch a specific target.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: targetId
          in: path
          type: string
          required: true
      - name: deletetarget
        method: DELETE
        description: Delete a target by ID.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: targetId
          in: path
          type: string
          required: true
      - name: patchtarget
        method: PATCH
        description: Partially update a target.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: targetId
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          required: true
    authentication:
      type: apikey
      key: X-API-Key
      value: '{{env.BLOCKDAEMON_API_KEY}}'
      placement: header
  exposes:
  - type: rest
    namespace: events-rules-targets-rest
    port: 8080
    description: REST adapter for rules and targets.
    resources:
    - path: /v1/chain-watch/rules
      name: rules
      description: REST surface for rules CRUD.
      operations:
      - method: POST
        name: addrule
        description: Create a rule.
        call: events-rules-targets.addrule
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: findrules
        description: List rules.
        call: events-rules-targets.findrules
        with: {}
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: events-rules-targets-mcp
    port: 9090
    transport: http
    description: MCP adapter for Chain Watch rules and targets.
    tools:
    - name: blockdaemon-list-rules
      description: List all Chain Watch rules.
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: events-rules-targets.findrules
      with: {}
      outputParameters:
      - type: object
        mapping: $.
    - name: blockdaemon-create-rule
      description: Create a new Chain Watch rule.
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: events-rules-targets.addrule
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: blockdaemon-delete-rule
      description: Delete a Chain Watch rule.
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: events-rules-targets.deleterule
      with:
        ruleId: tools.ruleId
      outputParameters:
      - type: object
        mapping: $.
    - name: blockdaemon-list-targets
      description: List Chain Watch targets.
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: events-rules-targets.findtargets
      with: {}
      outputParameters:
      - type: object
        mapping: $.
    - name: blockdaemon-create-target
      description: Create a Chain Watch target (webhook/Kafka/WebSocket).
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: events-rules-targets.addtarget
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.