fireblocks · Capability

Fireblocks Staking — Staking

Fireblocks Staking business capability. 14 operations against the Fireblocks REST API v1.

Run with Naftiko FireblocksStaking

What You Can Do

GET
Getchains — List supported chains for Fireblocks Staking
/v1/staking/chains
POST
Mergestakeaccounts — Merge operation on Solana stake accounts
/v1/staking/chains/{chainDescriptor}/merge
GET
Getchaininfo — Get chain-specific staking summary
/v1/staking/chains/{chainDescriptor}/chainInfo
POST
Stake — Initiate Stake Operation
/v1/staking/chains/{chainDescriptor}/stake
POST
Unstake — Execute an Unstake operation
/v1/staking/chains/{chainDescriptor}/unstake
POST
Withdraw — Execute a Withdraw operation
/v1/staking/chains/{chainDescriptor}/withdraw
POST
Claimrewards — Execute a Claim Rewards operation
/v1/staking/chains/{chainDescriptor}/claim_rewards
POST
Split — Execute a Split operation
/v1/staking/chains/{chainDescriptor}/split
GET
Getalldelegations — List staking positions details
/v1/staking/positions
GET
Getsummary — Get staking summary details
/v1/staking/positions/summary
GET
Getsummarybyvault — Get staking summary details by vault
/v1/staking/positions/summary/vaults
GET
Getdelegationbyid — Get staking position details
/v1/staking/positions/{id}
GET
Getproviders — List staking providers details
/v1/staking/providers
POST
Approvetermsofservicebyproviderid — Approve staking terms of service
/v1/staking/providers/{providerId}/approveTermsOfService

MCP Tools

fireblocks-getchains

List supported chains for Fireblocks Staking

read-only idempotent
fireblocks-mergestakeaccounts

Merge operation on Solana stake accounts

fireblocks-getchaininfo

Get chain-specific staking summary

read-only idempotent
fireblocks-stake

Initiate Stake Operation

fireblocks-unstake

Execute an Unstake operation

fireblocks-withdraw

Execute a Withdraw operation

fireblocks-claimrewards

Execute a Claim Rewards operation

fireblocks-split

Execute a Split operation

fireblocks-getalldelegations

List staking positions details

read-only idempotent
fireblocks-getsummary

Get staking summary details

read-only idempotent
fireblocks-getsummarybyvault

Get staking summary details by vault

read-only idempotent
fireblocks-getdelegationbyid

Get staking position details

read-only idempotent
fireblocks-getproviders

List staking providers details

read-only idempotent
fireblocks-approvetermsofservicebyproviderid

Approve staking terms of service

Capability Spec

staking.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: "Fireblocks Staking \u2014 Staking"
  description: Fireblocks Staking business capability. 14 operations against the Fireblocks REST API v1.
  tags:
  - Fireblocks
  - Staking
  created: '2026-05-25'
  modified: '2026-05-25'
binds:
- namespace: env
  keys:
    FIREBLOCKS_API_KEY: FIREBLOCKS_API_KEY
    FIREBLOCKS_API_SECRET: FIREBLOCKS_API_SECRET
capability:
  consumes:
  - type: http
    namespace: staking
    baseUri: https://api.fireblocks.io/v1
    description: Fireblocks Staking REST capability. JWT-signed using API key + RSA private key.
    resources:
    - name: getchains
      path: /staking/chains
      operations:
      - name: getchains
        method: GET
        description: List supported chains for Fireblocks Staking
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: mergestakeaccounts
      path: /staking/chains/{chainDescriptor}/merge
      operations:
      - name: mergestakeaccounts
        method: POST
        description: Merge operation on Solana stake accounts
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: getchaininfo
      path: /staking/chains/{chainDescriptor}/chainInfo
      operations:
      - name: getchaininfo
        method: GET
        description: Get chain-specific staking summary
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: stake
      path: /staking/chains/{chainDescriptor}/stake
      operations:
      - name: stake
        method: POST
        description: Initiate Stake Operation
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: unstake
      path: /staking/chains/{chainDescriptor}/unstake
      operations:
      - name: unstake
        method: POST
        description: Execute an Unstake operation
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: withdraw
      path: /staking/chains/{chainDescriptor}/withdraw
      operations:
      - name: withdraw
        method: POST
        description: Execute a Withdraw operation
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: claimrewards
      path: /staking/chains/{chainDescriptor}/claim_rewards
      operations:
      - name: claimrewards
        method: POST
        description: Execute a Claim Rewards operation
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: split
      path: /staking/chains/{chainDescriptor}/split
      operations:
      - name: split
        method: POST
        description: Execute a Split operation
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: getalldelegations
      path: /staking/positions
      operations:
      - name: getalldelegations
        method: GET
        description: List staking positions details
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: getsummary
      path: /staking/positions/summary
      operations:
      - name: getsummary
        method: GET
        description: Get staking summary details
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: getsummarybyvault
      path: /staking/positions/summary/vaults
      operations:
      - name: getsummarybyvault
        method: GET
        description: Get staking summary details by vault
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: getdelegationbyid
      path: /staking/positions/{id}
      operations:
      - name: getdelegationbyid
        method: GET
        description: Get staking position details
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: getproviders
      path: /staking/providers
      operations:
      - name: getproviders
        method: GET
        description: List staking providers details
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: approvetermsofservicebyproviderid
      path: /staking/providers/{providerId}/approveTermsOfService
      operations:
      - name: approvetermsofservicebyproviderid
        method: POST
        description: Approve staking terms of service
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    authentication:
      type: apikey
      key: X-API-Key
      value: '{{env.FIREBLOCKS_API_KEY}}'
      placement: header
  exposes:
  - type: rest
    namespace: staking-rest
    port: 8080
    description: REST adapter for Fireblocks Staking.
    resources:
    - path: /v1/staking/chains
      name: getchains
      description: List supported chains for Fireblocks Staking
      operations:
      - method: GET
        name: getchains
        description: List supported chains for Fireblocks Staking
        call: staking.getchains
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/staking/chains/{chainDescriptor}/merge
      name: mergestakeaccounts
      description: Merge operation on Solana stake accounts
      operations:
      - method: POST
        name: mergestakeaccounts
        description: Merge operation on Solana stake accounts
        call: staking.mergestakeaccounts
        outputParameters:
        - type: object
          mapping: $.
        with:
          body: rest.body
    - path: /v1/staking/chains/{chainDescriptor}/chainInfo
      name: getchaininfo
      description: Get chain-specific staking summary
      operations:
      - method: GET
        name: getchaininfo
        description: Get chain-specific staking summary
        call: staking.getchaininfo
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/staking/chains/{chainDescriptor}/stake
      name: stake
      description: Initiate Stake Operation
      operations:
      - method: POST
        name: stake
        description: Initiate Stake Operation
        call: staking.stake
        outputParameters:
        - type: object
          mapping: $.
        with:
          body: rest.body
    - path: /v1/staking/chains/{chainDescriptor}/unstake
      name: unstake
      description: Execute an Unstake operation
      operations:
      - method: POST
        name: unstake
        description: Execute an Unstake operation
        call: staking.unstake
        outputParameters:
        - type: object
          mapping: $.
        with:
          body: rest.body
    - path: /v1/staking/chains/{chainDescriptor}/withdraw
      name: withdraw
      description: Execute a Withdraw operation
      operations:
      - method: POST
        name: withdraw
        description: Execute a Withdraw operation
        call: staking.withdraw
        outputParameters:
        - type: object
          mapping: $.
        with:
          body: rest.body
    - path: /v1/staking/chains/{chainDescriptor}/claim_rewards
      name: claimrewards
      description: Execute a Claim Rewards operation
      operations:
      - method: POST
        name: claimrewards
        description: Execute a Claim Rewards operation
        call: staking.claimrewards
        outputParameters:
        - type: object
          mapping: $.
        with:
          body: rest.body
    - path: /v1/staking/chains/{chainDescriptor}/split
      name: split
      description: Execute a Split operation
      operations:
      - method: POST
        name: split
        description: Execute a Split operation
        call: staking.split
        outputParameters:
        - type: object
          mapping: $.
        with:
          body: rest.body
    - path: /v1/staking/positions
      name: getalldelegations
      description: List staking positions details
      operations:
      - method: GET
        name: getalldelegations
        description: List staking positions details
        call: staking.getalldelegations
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/staking/positions/summary
      name: getsummary
      description: Get staking summary details
      operations:
      - method: GET
        name: getsummary
        description: Get staking summary details
        call: staking.getsummary
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/staking/positions/summary/vaults
      name: getsummarybyvault
      description: Get staking summary details by vault
      operations:
      - method: GET
        name: getsummarybyvault
        description: Get staking summary details by vault
        call: staking.getsummarybyvault
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/staking/positions/{id}
      name: getdelegationbyid
      description: Get staking position details
      operations:
      - method: GET
        name: getdelegationbyid
        description: Get staking position details
        call: staking.getdelegationbyid
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/staking/providers
      name: getproviders
      description: List staking providers details
      operations:
      - method: GET
        name: getproviders
        description: List staking providers details
        call: staking.getproviders
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/staking/providers/{providerId}/approveTermsOfService
      name: approvetermsofservicebyproviderid
      description: Approve staking terms of service
      operations:
      - method: POST
        name: approvetermsofservicebyproviderid
        description: Approve staking terms of service
        call: staking.approvetermsofservicebyproviderid
        outputParameters:
        - type: object
          mapping: $.
        with:
          body: rest.body
  - type: mcp
    namespace: staking-mcp
    port: 9090
    transport: http
    description: MCP adapter for Fireblocks Staking. One tool per consumed operation.
    tools:
    - name: fireblocks-getchains
      description: List supported chains for Fireblocks Staking
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: staking.getchains
      outputParameters:
      - type: object
        mapping: $.
    - name: fireblocks-mergestakeaccounts
      description: Merge operation on Solana stake accounts
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: staking.mergestakeaccounts
      outputParameters:
      - type: object
        mapping: $.
      with:
        body: tools.body
    - name: fireblocks-getchaininfo
      description: Get chain-specific staking summary
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: staking.getchaininfo
      outputParameters:
      - type: object
        mapping: $.
    - name: fireblocks-stake
      description: Initiate Stake Operation
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: staking.stake
      outputParameters:
      - type: object
        mapping: $.
      with:
        body: tools.body
    - name: fireblocks-unstake
      description: Execute an Unstake operation
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: staking.unstake
      outputParameters:
      - type: object
        mapping: $.
      with:
        body: tools.body
    - name: fireblocks-withdraw
      description: Execute a Withdraw operation
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: staking.withdraw
      outputParameters:
      - type: object
        mapping: $.
      with:
        body: tools.body
    - name: fireblocks-claimrewards
      description: Execute a Claim Rewards operation
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: staking.claimrewards
      outputParameters:
      - type: object
        mapping: $.
      with:
        body: tools.body
    - name: fireblocks-split
      description: Execute a Split operation
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: staking.split
      outputParameters:
      - type: object
        mapping: $.
      with:
        body: tools.body
    - name: fireblocks-getalldelegations
      description: List staking positions details
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: staking.getalldelegations
      outputParameters:
      - type: object
        mapping: $.
    - name: fireblocks-getsummary
      description: Get staking summary details
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: staking.getsummary
      outputParameters:
      - type: object
        mapping: $.
    - name: fireblocks-getsummarybyvault
      description: Get staking summary details by vault
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: staking.getsummarybyvault
      outputParameters:
      - type: object
        mapping: $.
    - name: fireblocks-getdelegationbyid
      description: Get staking position details
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: staking.getdelegationbyid
      outputParameters:
      - type: object
        mapping: $.
    - name: fireblocks-getproviders
      description: List staking providers details
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: staking.getproviders
      outputParameters:
      - type: object
        mapping: $.
    - name: fireblocks-approvetermsofservicebyproviderid
      description: Approve staking terms of service
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: staking.approvetermsofservicebyproviderid
      outputParameters:
      - type: object
        mapping: $.
      with:
        body: tools.body