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