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.
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
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: $.