fireblocks · Capability

Fireblocks Vaults — Vaults

Fireblocks Vaults business capability. 38 operations against the Fireblocks REST API v1.

Run with Naftiko FireblocksVaults

What You Can Do

GET
Getvaultaccounts — Get vault accounts
/v1/vault/accounts
POST
Createvaultaccount — Create a new vault account
/v1/vault/accounts
POST
Createmultipledepositaddresses — Bulk creation of new deposit addresses
/v1/vault/accounts/addresses/bulk
GET
Getcreatemultipledepositaddressesjobstatus — Get the job status of the bulk deposit address creation
/v1/vault/accounts/addresses/bulk/{jobId}
POST
Createmultipleaccounts — Bulk creation of new vault accounts
/v1/vault/accounts/bulk/
GET
Getcreatemultiplevaultaccountsjobstatus — Get job status of bulk creation of new vault accounts
/v1/vault/accounts/bulk/{jobId}
POST
Attachordetachtagsfromvaultaccounts — Attach or detach tags from vault accounts
/v1/vault/accounts/attached_tags
GET
Getpagedvaultaccounts — Get vault accounts (Paginated)
/v1/vault/accounts_paged
GET
Getvaultaccount — Get a vault account by ID
/v1/vault/accounts/{vaultAccountId}
PUT
Updatevaultaccount — Rename a vault account
/v1/vault/accounts/{vaultAccountId}
GET
Getassetwallets — Get vault wallets (Paginated)
/v1/vault/asset_wallets
POST
Hidevaultaccount — Hide a vault account in the console
/v1/vault/accounts/{vaultAccountId}/hide
POST
Unhidevaultaccount — Unhide a vault account in the console
/v1/vault/accounts/{vaultAccountId}/unhide
POST
Activateassetforvaultaccount — Activate a wallet in a vault account
/v1/vault/accounts/{vaultAccountId}/{assetId}/activate
POST
Setvaultaccountcustomerrefid — Set an AML/KYT ID for a vault account
/v1/vault/accounts/{vaultAccountId}/set_customer_ref_id
POST
Setvaultaccountautofuel — Set auto fueling to on or off
/v1/vault/accounts/{vaultAccountId}/set_auto_fuel
GET
Getvaultaccountasset — Get the asset balance for a vault account
/v1/vault/accounts/{vaultAccountId}/{assetId}
POST
Createvaultaccountasset — Create a new vault wallet
/v1/vault/accounts/{vaultAccountId}/{assetId}
POST
Updatevaultaccountassetbalance — Refresh asset balance data
/v1/vault/accounts/{vaultAccountId}/{assetId}/balance
GET
Getvaultaccountassetaddresses — Get asset addresses
/v1/vault/accounts/{vaultAccountId}/{assetId}/addresses
POST
Createvaultaccountassetaddress — Create new asset deposit address
/v1/vault/accounts/{vaultAccountId}/{assetId}/addresses
GET
Getvaultaccountassetaddressespaginated — Get addresses (Paginated)
/v1/vault/accounts/{vaultAccountId}/{assetId}/addresses_paginated
GET
Getmaxspendableamount — Get max spendable amount in a transaction
/v1/vault/accounts/{vaultAccountId}/{assetId}/max_spendable_amount
PUT
Updatevaultaccountassetaddress — Update address description
/v1/vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}
POST
Setcustomerrefidforaddress — Assign AML customer reference ID
/v1/vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}/set_customer_ref_id
POST
Createlegacyaddress — Convert a segwit address to legacy format
/v1/vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}/create_legacy
GET
Getunspentinputs — Get UTXO unspent inputs information
/v1/vault/accounts/{vaultAccountId}/{assetId}/unspent_inputs
GET
Getpublickeyinfo — Get the public key for a derivation path
/v1/vault/public_key_info
GET
Getpublickeyinfoforaddress — Get an asset's public key
/v1/vault/accounts/{vaultAccountId}/{assetId}/{change}/{addressIndex}/public_key_info
POST
Attachtagstovaultaccounts — Attach tags to a vault accounts
/v1/vault/accounts/attached/tags/attach
POST
Detachtagsfromvaultaccounts — Detach tags from a vault accounts
/v1/vault/accounts/attached/tags/detached
GET
Getvaultassets — Get asset balance for chosen assets
/v1/vault/assets
GET
Getvaultbalancebyasset — Get vault balance by an asset
/v1/vault/assets/{assetId}
POST
Createtag — Create a tag
/v1/tags
GET
Gettags — Get list of tags
/v1/tags
GET
Gettag — Get a tag
/v1/tags/{tagId}
PATCH
Updatetag — Update a tag
/v1/tags/{tagId}
DELETE
Deletetag — Delete a tag
/v1/tags/{tagId}

MCP Tools

fireblocks-getvaultaccounts

Get vault accounts

read-only idempotent
fireblocks-createvaultaccount

Create a new vault account

fireblocks-createmultipledepositaddresses

Bulk creation of new deposit addresses

fireblocks-getcreatemultipledepositaddressesjobstatus

Get the job status of the bulk deposit address creation

read-only idempotent
fireblocks-createmultipleaccounts

Bulk creation of new vault accounts

fireblocks-getcreatemultiplevaultaccountsjobstatus

Get job status of bulk creation of new vault accounts

read-only idempotent
fireblocks-attachordetachtagsfromvaultaccounts

Attach or detach tags from vault accounts

fireblocks-getpagedvaultaccounts

Get vault accounts (Paginated)

read-only idempotent
fireblocks-getvaultaccount

Get a vault account by ID

read-only idempotent
fireblocks-updatevaultaccount

Rename a vault account

idempotent
fireblocks-getassetwallets

Get vault wallets (Paginated)

read-only idempotent
fireblocks-hidevaultaccount

Hide a vault account in the console

fireblocks-unhidevaultaccount

Unhide a vault account in the console

fireblocks-activateassetforvaultaccount

Activate a wallet in a vault account

fireblocks-setvaultaccountcustomerrefid

Set an AML/KYT ID for a vault account

fireblocks-setvaultaccountautofuel

Set auto fueling to on or off

fireblocks-getvaultaccountasset

Get the asset balance for a vault account

read-only idempotent
fireblocks-createvaultaccountasset

Create a new vault wallet

fireblocks-updatevaultaccountassetbalance

Refresh asset balance data

fireblocks-getvaultaccountassetaddresses

Get asset addresses

read-only idempotent
fireblocks-createvaultaccountassetaddress

Create new asset deposit address

fireblocks-getvaultaccountassetaddressespaginated

Get addresses (Paginated)

read-only idempotent
fireblocks-getmaxspendableamount

Get max spendable amount in a transaction

read-only idempotent
fireblocks-updatevaultaccountassetaddress

Update address description

idempotent
fireblocks-setcustomerrefidforaddress

Assign AML customer reference ID

fireblocks-createlegacyaddress

Convert a segwit address to legacy format

fireblocks-getunspentinputs

Get UTXO unspent inputs information

read-only idempotent
fireblocks-getpublickeyinfo

Get the public key for a derivation path

read-only idempotent
fireblocks-getpublickeyinfoforaddress

Get an asset's public key

read-only idempotent
fireblocks-attachtagstovaultaccounts

Attach tags to a vault accounts

fireblocks-detachtagsfromvaultaccounts

Detach tags from a vault accounts

fireblocks-getvaultassets

Get asset balance for chosen assets

read-only idempotent
fireblocks-getvaultbalancebyasset

Get vault balance by an asset

read-only idempotent
fireblocks-createtag

Create a tag

fireblocks-gettags

Get list of tags

read-only idempotent
fireblocks-gettag

Get a tag

read-only idempotent
fireblocks-updatetag

Update a tag

fireblocks-deletetag

Delete a tag

idempotent

Capability Spec

vaults.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: "Fireblocks Vaults \u2014 Vaults"
  description: Fireblocks Vaults business capability. 38 operations against the Fireblocks REST API v1.
  tags:
  - Fireblocks
  - Vaults
  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: vaults
    baseUri: https://api.fireblocks.io/v1
    description: Fireblocks Vaults REST capability. JWT-signed using API key + RSA private key.
    resources:
    - name: getvaultaccounts
      path: /vault/accounts
      operations:
      - name: getvaultaccounts
        method: GET
        description: Get vault accounts
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: createvaultaccount
      path: /vault/accounts
      operations:
      - name: createvaultaccount
        method: POST
        description: Create a new vault account
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: createmultipledepositaddresses
      path: /vault/accounts/addresses/bulk
      operations:
      - name: createmultipledepositaddresses
        method: POST
        description: Bulk creation of new deposit addresses
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: getcreatemultipledepositaddressesjobstatus
      path: /vault/accounts/addresses/bulk/{jobId}
      operations:
      - name: getcreatemultipledepositaddressesjobstatus
        method: GET
        description: Get the job status of the bulk deposit address creation
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: createmultipleaccounts
      path: /vault/accounts/bulk/
      operations:
      - name: createmultipleaccounts
        method: POST
        description: Bulk creation of new vault accounts
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: getcreatemultiplevaultaccountsjobstatus
      path: /vault/accounts/bulk/{jobId}
      operations:
      - name: getcreatemultiplevaultaccountsjobstatus
        method: GET
        description: Get job status of bulk creation of new vault accounts
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: attachordetachtagsfromvaultaccounts
      path: /vault/accounts/attached_tags
      operations:
      - name: attachordetachtagsfromvaultaccounts
        method: POST
        description: Attach or detach tags from vault accounts
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: getpagedvaultaccounts
      path: /vault/accounts_paged
      operations:
      - name: getpagedvaultaccounts
        method: GET
        description: Get vault accounts (Paginated)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: getvaultaccount
      path: /vault/accounts/{vaultAccountId}
      operations:
      - name: getvaultaccount
        method: GET
        description: Get a vault account by ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: updatevaultaccount
      path: /vault/accounts/{vaultAccountId}
      operations:
      - name: updatevaultaccount
        method: PUT
        description: Rename a vault account
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: getassetwallets
      path: /vault/asset_wallets
      operations:
      - name: getassetwallets
        method: GET
        description: Get vault wallets (Paginated)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: hidevaultaccount
      path: /vault/accounts/{vaultAccountId}/hide
      operations:
      - name: hidevaultaccount
        method: POST
        description: Hide a vault account in the console
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: unhidevaultaccount
      path: /vault/accounts/{vaultAccountId}/unhide
      operations:
      - name: unhidevaultaccount
        method: POST
        description: Unhide a vault account in the console
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: activateassetforvaultaccount
      path: /vault/accounts/{vaultAccountId}/{assetId}/activate
      operations:
      - name: activateassetforvaultaccount
        method: POST
        description: Activate a wallet in a vault account
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: setvaultaccountcustomerrefid
      path: /vault/accounts/{vaultAccountId}/set_customer_ref_id
      operations:
      - name: setvaultaccountcustomerrefid
        method: POST
        description: Set an AML/KYT ID for a vault account
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: setvaultaccountautofuel
      path: /vault/accounts/{vaultAccountId}/set_auto_fuel
      operations:
      - name: setvaultaccountautofuel
        method: POST
        description: Set auto fueling to on or off
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: getvaultaccountasset
      path: /vault/accounts/{vaultAccountId}/{assetId}
      operations:
      - name: getvaultaccountasset
        method: GET
        description: Get the asset balance for a vault account
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: createvaultaccountasset
      path: /vault/accounts/{vaultAccountId}/{assetId}
      operations:
      - name: createvaultaccountasset
        method: POST
        description: Create a new vault wallet
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: updatevaultaccountassetbalance
      path: /vault/accounts/{vaultAccountId}/{assetId}/balance
      operations:
      - name: updatevaultaccountassetbalance
        method: POST
        description: Refresh asset balance data
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: getvaultaccountassetaddresses
      path: /vault/accounts/{vaultAccountId}/{assetId}/addresses
      operations:
      - name: getvaultaccountassetaddresses
        method: GET
        description: Get asset addresses
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: createvaultaccountassetaddress
      path: /vault/accounts/{vaultAccountId}/{assetId}/addresses
      operations:
      - name: createvaultaccountassetaddress
        method: POST
        description: Create new asset deposit address
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: getvaultaccountassetaddressespaginated
      path: /vault/accounts/{vaultAccountId}/{assetId}/addresses_paginated
      operations:
      - name: getvaultaccountassetaddressespaginated
        method: GET
        description: Get addresses (Paginated)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: getmaxspendableamount
      path: /vault/accounts/{vaultAccountId}/{assetId}/max_spendable_amount
      operations:
      - name: getmaxspendableamount
        method: GET
        description: Get max spendable amount in a transaction
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: updatevaultaccountassetaddress
      path: /vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}
      operations:
      - name: updatevaultaccountassetaddress
        method: PUT
        description: Update address description
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: setcustomerrefidforaddress
      path: /vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}/set_customer_ref_id
      operations:
      - name: setcustomerrefidforaddress
        method: POST
        description: Assign AML customer reference ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: createlegacyaddress
      path: /vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}/create_legacy
      operations:
      - name: createlegacyaddress
        method: POST
        description: Convert a segwit address to legacy format
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: getunspentinputs
      path: /vault/accounts/{vaultAccountId}/{assetId}/unspent_inputs
      operations:
      - name: getunspentinputs
        method: GET
        description: Get UTXO unspent inputs information
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: getpublickeyinfo
      path: /vault/public_key_info
      operations:
      - name: getpublickeyinfo
        method: GET
        description: Get the public key for a derivation path
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: getpublickeyinfoforaddress
      path: /vault/accounts/{vaultAccountId}/{assetId}/{change}/{addressIndex}/public_key_info
      operations:
      - name: getpublickeyinfoforaddress
        method: GET
        description: Get an asset's public key
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: attachtagstovaultaccounts
      path: /vault/accounts/attached/tags/attach
      operations:
      - name: attachtagstovaultaccounts
        method: POST
        description: Attach tags to a vault accounts
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: detachtagsfromvaultaccounts
      path: /vault/accounts/attached/tags/detached
      operations:
      - name: detachtagsfromvaultaccounts
        method: POST
        description: Detach tags from a vault accounts
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: getvaultassets
      path: /vault/assets
      operations:
      - name: getvaultassets
        method: GET
        description: Get asset balance for chosen assets
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: getvaultbalancebyasset
      path: /vault/assets/{assetId}
      operations:
      - name: getvaultbalancebyasset
        method: GET
        description: Get vault balance by an asset
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: createtag
      path: /tags
      operations:
      - name: createtag
        method: POST
        description: Create a tag
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: gettags
      path: /tags
      operations:
      - name: gettags
        method: GET
        description: Get list of tags
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: gettag
      path: /tags/{tagId}
      operations:
      - name: gettag
        method: GET
        description: Get a tag
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: updatetag
      path: /tags/{tagId}
      operations:
      - name: updatetag
        method: PATCH
        description: Update a tag
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: deletetag
      path: /tags/{tagId}
      operations:
      - name: deletetag
        method: DELETE
        description: Delete a tag
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    authentication:
      type: apikey
      key: X-API-Key
      value: '{{env.FIREBLOCKS_API_KEY}}'
      placement: header
  exposes:
  - type: rest
    namespace: vaults-rest
    port: 8080
    description: REST adapter for Fireblocks Vaults.
    resources:
    - path: /v1/vault/accounts
      name: getvaultaccounts
      description: Get vault accounts
      operations:
      - method: GET
        name: getvaultaccounts
        description: Get vault accounts
        call: vaults.getvaultaccounts
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/vault/accounts
      name: createvaultaccount
      description: Create a new vault account
      operations:
      - method: POST
        name: createvaultaccount
        description: Create a new vault account
        call: vaults.createvaultaccount
        outputParameters:
        - type: object
          mapping: $.
        with:
          body: rest.body
    - path: /v1/vault/accounts/addresses/bulk
      name: createmultipledepositaddresses
      description: Bulk creation of new deposit addresses
      operations:
      - method: POST
        name: createmultipledepositaddresses
        description: Bulk creation of new deposit addresses
        call: vaults.createmultipledepositaddresses
        outputParameters:
        - type: object
          mapping: $.
        with:
          body: rest.body
    - path: /v1/vault/accounts/addresses/bulk/{jobId}
      name: getcreatemultipledepositaddressesjobstatus
      description: Get the job status of the bulk deposit address creation
      operations:
      - method: GET
        name: getcreatemultipledepositaddressesjobstatus
        description: Get the job status of the bulk deposit address creation
        call: vaults.getcreatemultipledepositaddressesjobstatus
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/vault/accounts/bulk/
      name: createmultipleaccounts
      description: Bulk creation of new vault accounts
      operations:
      - method: POST
        name: createmultipleaccounts
        description: Bulk creation of new vault accounts
        call: vaults.createmultipleaccounts
        outputParameters:
        - type: object
          mapping: $.
        with:
          body: rest.body
    - path: /v1/vault/accounts/bulk/{jobId}
      name: getcreatemultiplevaultaccountsjobstatus
      description: Get job status of bulk creation of new vault accounts
      operations:
      - method: GET
        name: getcreatemultiplevaultaccountsjobstatus
        description: Get job status of bulk creation of new vault accounts
        call: vaults.getcreatemultiplevaultaccountsjobstatus
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/vault/accounts/attached_tags
      name: attachordetachtagsfromvaultaccounts
      description: Attach or detach tags from vault accounts
      operations:
      - method: POST
        name: attachordetachtagsfromvaultaccounts
        description: Attach or detach tags from vault accounts
        call: vaults.attachordetachtagsfromvaultaccounts
        outputParameters:
        - type: object
          mapping: $.
        with:
          body: rest.body
    - path: /v1/vault/accounts_paged
      name: getpagedvaultaccounts
      description: Get vault accounts (Paginated)
      operations:
      - method: GET
        name: getpagedvaultaccounts
        description: Get vault accounts (Paginated)
        call: vaults.getpagedvaultaccounts
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/vault/accounts/{vaultAccountId}
      name: getvaultaccount
      description: Get a vault account by ID
      operations:
      - method: GET
        name: getvaultaccount
        description: Get a vault account by ID
        call: vaults.getvaultaccount
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/vault/accounts/{vaultAccountId}
      name: updatevaultaccount
      description: Rename a vault account
      operations:
      - method: PUT
        name: updatevaultaccount
        description: Rename a vault account
        call: vaults.updatevaultaccount
        outputParameters:
        - type: object
          mapping: $.
        with:
          body: rest.body
    - path: /v1/vault/asset_wallets
      name: getassetwallets
      description: Get vault wallets (Paginated)
      operations:
      - method: GET
        name: getassetwallets
        description: Get vault wallets (Paginated)
        call: vaults.getassetwallets
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/vault/accounts/{vaultAccountId}/hide
      name: hidevaultaccount
      description: Hide a vault account in the console
      operations:
      - method: POST
        name: hidevaultaccount
        description: Hide a vault account in the console
        call: vaults.hidevaultaccount
        outputParameters:
        - type: object
          mapping: $.
        with:
          body: rest.body
    - path: /v1/vault/accounts/{vaultAccountId}/unhide
      name: unhidevaultaccount
      description: Unhide a vault account in the console
      operations:
      - method: POST
        name: unhidevaultaccount
        description: Unhide a vault account in the console
        call: vaults.unhidevaultaccount
        outputParameters:
        - type: object
          mapping: $.
        with:
          body: rest.body
    - path: /v1/vault/accounts/{vaultAccountId}/{assetId}/activate
      name: activateassetforvaultaccount
      description: Activate a wallet in a vault account
      operations:
      - method: POST
        name: activateassetforvaultaccount
        description: Activate a wallet in a vault account
        call: vaults.activateassetforvaultaccount
        outputParameters:
        - type: object
          mapping: $.
        with:
          body: rest.body
    - path: /v1/vault/accounts/{vaultAccountId}/set_customer_ref_id
      name: setvaultaccountcustomerrefid
      description: Set an AML/KYT ID for a vault account
      operations:
      - method: POST
        name: setvaultaccountcustomerrefid
        description: Set an AML/KYT ID for a vault account
        call: vaults.setvaultaccountcustomerrefid
        outputParameters:
        - type: object
          mapping: $.
        with:
          body: rest.body
    - path: /v1/vault/accounts/{vaultAccountId}/set_auto_fuel
      name: setvaultaccountautofuel
      description: Set auto fueling to on or off
      operations:
      - method: POST
        name: setvaultaccountautofuel
        description: Set auto fueling to on or off
        call: vaults.setvaultaccountautofuel
        outputParameters:
        - type: object
          mapping: $.
        with:
          body: rest.body
    - path: /v1/vault/accounts/{vaultAccountId}/{assetId}
      name: getvaultaccountasset
      description: Get the asset balance for a vault account
      operations:
      - method: GET
        name: getvaultaccountasset
        description: Get the asset balance for a vault account
        call: vaults.getvaultaccountasset
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/vault/accounts/{vaultAccountId}/{assetId}
      name: createvaultaccountasset
      description: Create a new vault wallet
      operations:
      - method: POST
        name: createvaultaccountasset
        description: Create a new vault wallet
        call: vaults.createvaultaccountasset
        outputParameters:
        - type: object
          mapping: $.
        with:
          body: rest.body
    - path: /v1/vault/accounts/{vaultAccountId}/{assetId}/balance
      name: updatevaultaccountassetbalance
      description: Refresh asset balance data
      operations:
      - method: POST
        name: updatevaultaccountassetbalance
        description: Refresh asset balance data
        call: vaults.updatevaultaccountassetbalance
        outputParameters:
        - type: object
          mapping: $.
        with:
          body: rest.body
    - path: /v1/vault/accounts/{vaultAccountId}/{assetId}/addresses
      name: getvaultaccountassetaddresses
      description: Get asset addresses
      operations:
      - method: GET
        name: getvaultaccountassetaddresses
        description: Get asset addresses
        call: vaults.getvaultaccountassetaddresses
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/vault/accounts/{vaultAccountId}/{assetId}/addresses
      name: createvaultaccountassetaddress
      description: Create new asset deposit address
      operations:
      - method: POST
        name: createvaultaccountassetaddress
        description: Create new asset deposit address
        call: vaults.createvaultaccountassetaddress
        outputParameters:
        - type: object
          mapping: $.
        with:
          body: rest.body
    - path: /v1/vault/accounts/{vaultAccountId}/{assetId}/addresses_paginated
      name: getvaultaccountassetaddressespaginated
      description: Get addresses (Paginated)
      operations:
      - method: GET
        name: getvaultaccountassetaddressespaginated
        description: Get addresses (Paginated)
        call: vaults.getvaultaccountassetaddressespaginated
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/vault/accounts/{vaultAccountId}/{assetId}/max_spendable_amount
      name: getmaxspendableamount
      description: Get max spendable amount in a transaction
      operations:
      - method: GET
        name: getmaxspendableamount
        description: Get max spendable amount in a transaction
        call: vaults.getmaxspendableamount
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}
      name: updatevaultaccountassetaddress
      description: Update address description
      operations:
      - method: PUT
        name: updatevaultaccountassetaddress
        description: Update address description
        call: vaults.updatevaultaccountassetaddress
        outputParameters:
        - type: object
          mapping: $.
        with:
          body: rest.body
    - path: /v1/vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}/set_customer_ref_id
      name: setcustomerrefidforaddress
      description: Assign AML customer reference ID
      operations:
      - method: POST
        name: setcustomerrefidforaddress
        description: Assign AML customer reference ID
        call: vaults.setcustomerrefidforaddress
        outputParameters:
        - type: object
          mapping: $.
        with:
          body: rest.body
    - path: /v1/vault/accounts/{vaultAccountId}/{assetId}/addresses/{addressId}/create_legacy
      name: createlegacyaddress
      description: Convert a segwit address to legacy format
      operations:
      - method: POST
        name: createlegacyaddress
        description: Convert a segwit address to legacy format
        call: vaults.createlegacyaddress
        outputParameters:
        - type: object
          mapping: $.
        with:
          body: rest.body
    - path: /v1/vault/accounts/{vaultAccountId}/{assetId}/unspent_inputs
      name: getunspentinputs
      description: Get UTXO unspent inputs information
      operations:
      - method: GET
        name: getunspentinputs
        description: Get UTXO unspent inputs information
        call: vaults.getunspentinputs
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/vault/public_key_info
      name: getpublickeyinfo
      description: Get the public key for a derivation path
      operations:
      - method: GET
        name: getpublickeyinfo
        description: Get the public key for a derivation path
        call: vaults.getpublickeyinfo
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/vault/accounts/{vaultAccountId}/{assetId}/{change}/{addressIndex}/public_key_info
      name: getpublickeyinfoforaddress
      description: Get an asset's public key
      operations:
      - method: GET
        name: getpublickeyinfoforaddress
        description: Get an asset's public key
        call: vaults.getpublickeyinfoforaddress
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/vault/accounts/attached/tags/attach
      name: attachtagstovaultaccounts
      description: Attach tags to a vault accounts
      operations:
      - method: POST
        name: attachtagstovaultaccounts
        description: Attach tags to a vault accounts
        call: vaults.attachtagstovaultaccounts
        outputParameters:
        - type: object
          mapping: $.
        with:
          body: rest.body
    - path: /v1/vault/accounts/attached/tags/detached
      name: detachtagsfromvaultaccounts
      description: Detach tags from a vault accounts
      operations:
      - method: POST
        name: detachtagsfromvaultaccounts
        description: Detach tags from a vault accounts
        call: vaults.detachtagsfromvaultaccounts
        outputParameters:
        - type: object
          mapping: $.
        with:
          body: rest.body
    - path: /v1/vault/assets
      name: getvaultassets
      description: Get asset balance for chosen assets
      operations:
      - method: GET
        name: getvaultassets
        description: Get asset balance for chosen assets
        call: vaults.getvaultassets
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/vault/assets/{assetId}
      name: getvaultbalancebyasset
      description: Get vault balance by an asset
      operations:
      - method: GET
        name: getvaultbalancebyasset
        description: Get vault balance by an asset
        call: vaults.getvaultbalancebyasset
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/tags
      name: createtag
      description: Create a tag
      operations:
      - method: POST
        name: createtag
        description: Create a tag
        call: vaults.createtag
        outputParameters:
        - type: object
          mapping: $.
        with:
          body: rest.body
    - path: /v1/tags
      name: gettags
      description: Get list of tags
      operations:
      - method: GET
        name: gettags
        description: Get list of tags
        call: vaults.gettags
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/tags/{tagId}
      name: gettag
      description: Get a tag
      operations:
      - method: GET
        name: gettag
        description: Get a tag
        call: vaults.gettag
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/tags/{tagId}
      name: updatetag
      description: Update a tag
      operations:
      - method: PATCH
        name: updatetag
        description: Update a tag
        call: vaults.updatetag
        outputParameters:
        - type: object
          mapping: $.
        with:
          body: rest.body
    - path: /v1/tags/{tagId}
      name: deletetag
      description: Delete a tag
      operations:
      - method: DELETE
        name: deletetag
        description: Delete a tag
        call: vaults.deletetag
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: vaults-mcp
    port: 9090
    transport: http
    description: MCP adapter for Fireblocks Vaults. One tool per consumed operation.
    tools:
    - name: fireblocks-getvaultaccounts
      description: Get vault accounts
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: vaults.getvaultaccounts
      outputParameters:
      - type: object
        mapping: $.
    - name: fireblocks-createvaultaccount
      description: Create a new vault account
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: vaults.createvaultaccount
      outputParameters:
      - type: object
        mapping: $.
      with:
        body: tools.body
    - name:

# --- truncated at 32 KB (42 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/fireblocks/refs/heads/main/capabilities/vaults.yaml