Fireblocks Blockchains and Assets API

Enumerate the blockchains and assets supported by the workspace — native coins, ERC-20s, SPL tokens, BRC-20s, NFTs — and register new asset/contract pairs. Returns asset metadata including contract address, native asset, decimals, and on-chain id used by the rest of the Fireblocks API.

OpenAPI Specification

fireblocks-assets-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Fireblocks Blockchains and Assets API
  description: 'Fireblocks provides a suite of applications to manage digital asset operations and a complete development
    platform to build your business on the blockchain.


    - Visit our website for more information: [Fireblocks Website](https://fireblocks.com)

    - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)

    '
  version: 1.8.0
  contact:
    email: [email protected]
servers:
- url: https://api.fireblocks.io/v1
  description: Fireblocks Production Environment Base URL
- url: https://sandbox-api.fireblocks.io/v1
  description: Fireblocks Sandbox Environment Base URL
security: []
paths:
  /assets:
    get:
      operationId: listAssets
      summary: List assets
      description: 'Retrieves a paginated list of all assets supported by Fireblocks in your workspace.


        **Note:** We will continue to support and display the legacy ID (API ID). Since not all Fireblocks services fully
        support the new Assets UUID, please use only the legacy ID until further notice.

        '
      tags:
      - Blockchains & Assets
      x-readme:
        code-samples:
        - language: javascript
          code: const assets = await fireblocks.listAssets(filters);
          name: Fireblocks SDK Javascript example
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<ListAssetsResponse>> = fireblocks.blockchainsAssetsBeta.listAssets(blockchainsAssetsBetaApiListAssetsRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<ListAssetsResponse>> response = fireblocks.blockchainsAssetsBeta().listAssets(blockchainId,
            assetClass, symbol, scope, deprecated, pageCursor, pageSize, idempotencyKey);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.blockchains_&_assets_beta.list_assets(blockchain_id, asset_class, symbol, scope, deprecated,
            page_cursor, page_size, idempotency_key);
          name: Fireblocks SDK Python example
      parameters:
      - name: blockchainId
        required: false
        in: query
        description: Blockchain id of the assets
        schema:
          type: string
        example: 0f672204-a28b-464a-b318-a387abd3d3c7
      - name: assetClass
        required: false
        in: query
        description: Assets class
        schema:
          $ref: '#/components/schemas/AssetClass'
      - name: symbol
        required: false
        in: query
        description: Assets onchain symbol
        schema:
          minLength: 1
          type: string
        example: ETH
      - name: scope
        required: false
        in: query
        description: Scope of the assets
        schema:
          $ref: '#/components/schemas/AssetScope'
      - name: deprecated
        required: false
        in: query
        description: Are assets deprecated
        schema:
          type: boolean
        example: false
      - name: ids
        required: false
        in: query
        description: A list of asset IDs (max 100)
        schema:
          type: array
          items:
            type: string
        example:
        - 3ed32525-70df-45c8-bae3-e69ab56dc095
        - 3a3b5f06-61e7-44f0-9962-4425b55795ff
        - SHANI5_B75VRLGX_MUPA
      - name: pageCursor
        required: false
        in: query
        description: Next page cursor to fetch
        schema:
          type: string
        example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==
      - name: pageSize
        required: false
        in: query
        description: Items per page
        schema:
          minimum: 100
          maximum: 1000
          default: 500
          type: number
        example: 500
      - $ref: '#/components/parameters/X-Idempotency-Key'
      responses:
        '200':
          description: List of assets
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListAssetsResponse'
        '500':
          description: Error occurred while listing assets
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetInternalServerErrorResponse'
        default:
          $ref: '#/components/responses/Error'
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<ListAssetsResponse>> = fireblocks.blockchainsAssetsBeta.listAssets(blockchainsAssetsBetaApiListAssetsRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<ListAssetsResponse>> response = fireblocks.blockchainsAssetsBeta().listAssets(blockchainId,
          assetClass, symbol, scope, deprecated, pageCursor, pageSize, idempotencyKey);
      - lang: Python
        source: response = fireblocks.blockchains_&_assets_beta.list_assets(blockchain_id, asset_class, symbol, scope, deprecated,
          page_cursor, page_size, idempotency_key);
    post:
      operationId: registerNewAsset
      summary: Register an asset
      description: "Registers a new asset to a workspace and retrieves the newly created asset's details. Currently supported\
        \ chains are: \n  - EVM-based chains\n  - Algorand\n  - NEAR\n  - Solana\n  - Stellar\n  - Sui\n  - TRON\n\n**Endpoint\
        \ Permissions:** Owner, Admin, Non-Signing Admin, NCW Admin, Editor, Signer.        \n"
      tags:
      - Blockchains & Assets
      parameters:
      - $ref: '#/components/parameters/X-Idempotency-Key'
      x-readme:
        code-samples:
        - language: javascript
          code: const supportedAssets = await fireblocks.registerNewAsset(blockchainId, address, symbol);
          name: Fireblocks SDK Javascript example
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<AssetResponse>> = fireblocks.blockchainsAssets.registerNewAsset(blockchainsAssetsApiRegisterNewAssetRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<AssetResponse>> response = fireblocks.blockchainsAssets().registerNewAsset(registerNewAssetRequest,
            idempotencyKey);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.blockchains_&_assets.register_new_asset(register_new_asset_request, idempotency_key);
          name: Fireblocks SDK Python example
      responses:
        '200':
          description: A new asset has been created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetResponse'
        '400':
          description: '- Listing an asset on the requested blockchain is not supported. Error code: 1000


            - The asset address is invalid. Error code: 1003


            - Self serve listing an asset on the requested blockchain is currently not supported, please contact support.
            Error code: 1004


            - Blockchain is deprecated. Error code: 1006


            - The asset''s standard is not supported. Error code: 1007

            - Unable to get expected metadata: decimals | name | symbol. Error code: 1010

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetBadRequestErrorResponse'
        '403':
          description: '- The asset creation quota reached. Error code: 1005


            - Tenant is not allowed to create testnet assets. Error code: 1008


            - Tenant is not allowed to create mainnet assets. Error code: 1009

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetForbiddenErrorResponse'
        '404':
          description: '- Invalid address, could not get asset information. Error code 1003

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenInfoNotFoundErrorResponse'
        '409':
          description: '- The asset is already supported globally. Error code: 1001


            - The asset has already been added to this workspace. Error code: 1002

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetConflictErrorResponse'
        '500':
          description: Failed to create asset
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetInternalServerErrorResponse'
        default:
          $ref: '#/components/responses/Error'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegisterNewAssetRequest'
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<AssetResponse>> = fireblocks.blockchainsAssets.registerNewAsset(blockchainsAssetsApiRegisterNewAssetRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<AssetResponse>> response = fireblocks.blockchainsAssets().registerNewAsset(registerNewAssetRequest,
          idempotencyKey);
      - lang: Python
        source: response = fireblocks.blockchains_&_assets.register_new_asset(register_new_asset_request, idempotency_key);
  /assets/{id}:
    get:
      operationId: getAsset
      summary: Get an asset by ID
      description: "Returns an asset by ID or legacyID.</br>\n\n\n**Note**:\n- We will continue displaying and supporting\
        \ the legacy ID (API ID). \nSince not all Fireblocks services fully support the new Assets UUID, please use only the\
        \ legacy ID until further notice.\n"
      tags:
      - Blockchains & Assets
      x-readme:
        code-samples:
        - language: javascript
          code: const asset = await fireblocks.getAssetById(assetId);
          name: Fireblocks SDK Javascript example
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<Asset>> = fireblocks.blockchainsAssetsBeta.getAssetById(blockchainsAssetsBetaApiGetAssetByIdRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<Asset>> response = fireblocks.blockchainsAssetsBeta().getAssetById(id, idempotencyKey);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.blockchains_&_assets_beta.get_asset_by_id(id, idempotency_key);
          name: Fireblocks SDK Python example
      parameters:
      - name: id
        in: path
        required: true
        description: The ID or legacyId of the asset
        schema:
          type: string
          x-fb-entity: asset
        example: ETH
      - $ref: '#/components/parameters/X-Idempotency-Key'
      responses:
        '200':
          description: Asset with requested identification
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Asset'
        '404':
          description: '- Asset with specified ID or legacy ID is not found. Error code 1504

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetNotFoundErrorResponse'
        '500':
          description: Error occurred while getting an asset
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetInternalServerErrorResponse'
        default:
          $ref: '#/components/responses/Error'
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<Asset>> = fireblocks.blockchainsAssetsBeta.getAssetById(blockchainsAssetsBetaApiGetAssetByIdRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<Asset>> response = fireblocks.blockchainsAssetsBeta().getAssetById(id, idempotencyKey);
      - lang: Python
        source: response = fireblocks.blockchains_&_assets_beta.get_asset_by_id(id, idempotency_key);
    patch:
      operationId: updateAssetUserMetadata
      summary: "Update the user\u2019s metadata for an asset"
      description: "Update the user\u2019s metadata for an asset.\n\n**Endpoint Permissions:** Owner, Admin, Non-Signing Admin,\
        \ NCW Admin, Signer, Editor."
      tags:
      - Blockchains & assets
      x-readme:
        code-samples:
        - language: python
          code: asset = fireblocks.update_asset_user_metadata(asset_id, update_asset_user_metadata_request)
          name: Fireblocks SDK Python example (Legacy)
        - language: javascript
          code: const asset = await fireblocks.updateAssetUserMetadata(assetId, updateAssetUserMetadataRequest);
          name: Fireblocks SDK Javascript example
      parameters:
      - name: id
        in: path
        required: true
        description: The ID or legacyId of the asset
        schema:
          type: string
          x-fb-entity: asset
        example: ETH
      - $ref: '#/components/parameters/X-Idempotency-Key'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateAssetUserMetadataRequest'
      responses:
        '200':
          description: Updated asset user metadata
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Asset'
        '404':
          description: '- Asset with specified ID or legacy ID is not found. Error code 1504

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetNotFoundErrorResponse'
        '500':
          description: Error occurred while updating asset user metadata
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetInternalServerErrorResponse'
        default:
          $ref: '#/components/responses/Error'
  /assets/prices/{id}:
    post:
      operationId: setAssetPrice
      summary: Set asset price
      description: 'Set asset price for the given asset id. Returns the asset price response.

        '
      tags:
      - Blockchains & Assets
      x-readme:
        code-samples:
        - language: javascript
          code: const supportedAssets = await fireblocks.setAssetPrice(id, currency, price);
          name: Fireblocks SDK Javascript example
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<AssetPriceResponse>> = fireblocks.blockchainsAssets.setAssetPrice(blockchainsAssetsApiSetAssetPriceRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<AssetPriceResponse>> response = fireblocks.blockchainsAssets().setAssetPrice(id,
            setAssetPriceRequest, idempotencyKey);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.blockchains_&_assets.set_asset_price(id, set_asset_price_request, idempotency_key);
          name: Fireblocks SDK Python example
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the asset
        schema:
          type: string
        example: ETH
      - $ref: '#/components/parameters/X-Idempotency-Key'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetAssetPriceRequest'
      responses:
        '200':
          description: Asset price has been set successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetPriceResponse'
        '403':
          description: '- Tenant is not allowed to set rate. Error code: 1002.

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetPriceForbiddenErrorResponse'
        '404':
          description: '- Currency not found. Error code 1001

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetPriceNotFoundErrorResponse'
        default:
          $ref: '#/components/responses/Error'
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<AssetPriceResponse>> = fireblocks.blockchainsAssets.setAssetPrice(blockchainsAssetsApiSetAssetPriceRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<AssetPriceResponse>> response = fireblocks.blockchainsAssets().setAssetPrice(id,
          setAssetPriceRequest, idempotencyKey);
      - lang: Python
        source: response = fireblocks.blockchains_&_assets.set_asset_price(id, set_asset_price_request, idempotency_key);
  /blockchains:
    get:
      operationId: listBlockchains
      summary: List blockchains
      description: 'Returns all blockchains supported by Fireblocks.</br>

        '
      tags:
      - Blockchains & Assets
      x-readme:
        code-samples:
        - language: javascript
          code: const blockchains = await fireblocks.listBlockchains(filters);
          name: Fireblocks SDK Javascript example
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<ListBlockchainsResponse>> = fireblocks.blockchainsAssetsBeta.listBlockchains(blockchainsAssetsBetaApiListBlockchainsRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<ListBlockchainsResponse>> response = fireblocks.blockchainsAssetsBeta().listBlockchains(protocol,
            deprecated, test, pageCursor, pageSize);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.blockchains_&_assets_beta.list_blockchains(protocol, deprecated, test, page_cursor,
            page_size);
          name: Fireblocks SDK Python example
      parameters:
      - name: protocol
        required: false
        in: query
        description: Blockchain protocol
        schema:
          type: string
        example: SOL
      - name: deprecated
        required: false
        in: query
        description: Is blockchain deprecated
        schema:
          type: boolean
        example: false
      - name: test
        required: false
        in: query
        description: Is test blockchain
        schema:
          type: boolean
        example: false
      - name: ids
        required: false
        in: query
        description: A list of blockchain IDs (max 100)
        schema:
          type: array
          items:
            type: string
        example:
        - 3ed32525-70df-45c8-bae3-e69ab56dc095
        - 3a3b5f06-61e7-44f0-9962-4425b55795ff
        - MANTRA
      - name: pageCursor
        required: false
        in: query
        description: Page cursor to fetch
        schema:
          type: string
        example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==
      - name: pageSize
        required: false
        in: query
        description: Items per page (max 500)
        schema:
          minimum: 1
          maximum: 500
          default: 500
          type: number
        example: 500
      responses:
        '200':
          description: List of supported blockchains
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListBlockchainsResponse'
        '500':
          description: Error occurred while listing blockchains
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetInternalServerErrorResponse'
        default:
          $ref: '#/components/responses/Error'
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<ListBlockchainsResponse>> = fireblocks.blockchainsAssetsBeta.listBlockchains(blockchainsAssetsBetaApiListBlockchainsRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<ListBlockchainsResponse>> response = fireblocks.blockchainsAssetsBeta().listBlockchains(protocol,
          deprecated, test, pageCursor, pageSize);
      - lang: Python
        source: response = fireblocks.blockchains_&_assets_beta.list_blockchains(protocol, deprecated, test, page_cursor,
          page_size);
  /blockchains/{id}:
    get:
      operationId: getBlockchain
      summary: Get a Blockchain by ID
      description: 'Returns a blockchain by ID or legacyID.

        '
      tags:
      - Blockchains & Assets
      x-readme:
        code-samples:
        - language: javascript
          code: const blockchain = await fireblocks.getBlockchain(blockchainId);
          name: Fireblocks SDK Javascript example
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<BlockchainResponse>> = fireblocks.blockchainsAssetsBeta.getBlockchain(blockchainsAssetsBetaApiGetBlockchainByIdRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<BlockchainResponse>> response = fireblocks.blockchainsAssetsBeta().getBlockchain(id);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.blockchains_&_assets_beta.get_blockchain_by_id(id);
          name: Fireblocks SDK Python example
      parameters:
      - name: id
        in: path
        required: true
        description: The ID or legacyId of the blockchain
        schema:
          type: string
        example: ETH
      responses:
        '200':
          description: Blockchain with requested identification
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlockchainResponse'
        '404':
          description: '- Blockchain with specified ID or legacy ID is not found. Error code 1505

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlockchainNotFoundErrorResponse'
        '500':
          description: Error occurred while getting blockchain
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetInternalServerErrorResponse'
        default:
          $ref: '#/components/responses/Error'
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<BlockchainResponse>> = fireblocks.blockchainsAssetsBeta.getBlockchainById(blockchainsAssetsBetaApiGetBlockchainByIdRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<BlockchainResponse>> response = fireblocks.blockchainsAssetsBeta().getBlockchainById(id);
      - lang: Python
        source: response = fireblocks.blockchains_&_assets_beta.get_blockchain_by_id(id);
  /transactions/validate_address/{assetId}/{address}:
    get:
      summary: Validate destination address
      description: 'Checks if an address is valid and active (for XRP, DOT, XLM, and EOS).

        </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.'
      tags:
      - Blockchains & Assets
      x-readme:
        code-samples:
        - language: javascript
          code: const result = await fireblocks.(assetId, address);
          name: Fireblocks SDK Javascript example
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<ValidateAddressResponse>> = fireblocks.transactions.validateAddress(transactionsApiValidateAddressRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<ValidateAddressResponse>> response = fireblocks.transactions().validateAddress(assetId,
            address);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.transactions.validate_address(asset_id, address);
          name: Fireblocks SDK Python example
      parameters:
      - in: path
        name: assetId
        required: true
        description: The asset of the address
        schema:
          type: string
          x-fb-entity: asset
          example: XRP
      - in: path
        name: address
        required: true
        description: The address to validate
        schema:
          type: string
          example: rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn
      responses:
        '200':
          description: Validate Address Response Object
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidateAddressResponse'
        default:
          $ref: '#/components/responses/Error'
      operationId: validateAddress
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<ValidateAddressResponse>> = fireblocks.transactions.validateAddress(transactionsApiValidateAddressRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<ValidateAddressResponse>> response = fireblocks.transactions().validateAddress(assetId,
          address);
      - lang: Python
        source: response = fireblocks.transactions.validate_address(asset_id, address);
  /estimate_network_fee:
    get:
      summary: Estimate the required fee for an asset
      description: "Gets the estimated required fee for an asset.\nFireblocks fetches, calculates and caches the result every\
        \ 30 seconds.\nCustomers should query this API while taking the caching interval into consideration.\nNotes:\n- The\
        \ `networkFee` parameter is the `gasPrice` with a given delta added, multiplied by the gasLimit plus the delta. -\
        \ The estimation provided depends on the asset type.\n    - For UTXO-based assets, the response contains the `feePerByte`\
        \ parameter\n    - For ETH-based and all EVM based assets, the response will contain `gasPrice` parameter. This is\
        \ calculated by adding the `baseFee` to the `actualPriority` based on the latest 12 blocks. The response for ETH-based\
        \  contains the `baseFee`, `gasPrice`, and `priorityFee` parameters.\n    - For ADA-based assets, the response will\
        \ contain the parameter `networkFee` and `feePerByte` parameters.\n    - For XRP and XLM, the response will contain\
        \ the transaction fee.\n    - For other assets, the response will contain the `networkFee` parameter.\n\nLearn more\
        \ about Fireblocks Fee Management in the following [guide](https://developers.fireblocks.com/reference/estimate-transaction-fee).\n\
        </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor."
      tags:
      - Blockchains & Assets
      x-readme:
        code-samples:
        - language: javascript
          code: const feeResult = await fireblocks.getFeeForAsset(assetId);
          name: Fireblocks SDK Javascript example
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<EstimatedNetworkFeeResponse>> = fireblocks.transactions.estimateNetworkFee(transactionsApiEstimateNetworkFeeRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<EstimatedNetworkFeeResponse>> response = fireblocks.transactions().estimateNetworkFee(assetId);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.transactions.estimate_network_fee(asset_id);
          name: Fireblocks SDK Python example
      parameters:
      - in: query
        name: assetId
        description: The asset for which to estimate the fee
        required: true
        schema:
          type: string
          x-fb-entity: asset
          example: ETH
      responses:
        '200':
          description: Estimated fees response
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EstimatedNetworkFeeResponse'
        default:
          $ref: '#/components/responses/Error'
      operationId: estimateNetworkFee
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<EstimatedNetworkFeeResponse>> = fireblocks.transactions.estimateNetworkFee(transactionsApiEstimateNetworkFeeRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<EstimatedNetworkFeeResponse>> response = fireblocks.transactions().estimateNetworkFee(assetId);
      - lang: Python
        source: response = fireblocks.transactions.estimate_network_fee(asset_id);
  /supported_assets:
    get:
      summary: List assets (Legacy)
      description: '**This legacy endpoint has not been deprecated but it should not be used in your operations. Instead,
        use the new [List assets](https://developers.fireblocks.com/reference/listassets) endpoint for better performance
        and to retrieve more detailed asset information.**


        Retrieves all assets supported by Fireblocks in your workspace.


        **Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor.

        '
      tags:
      - Blockchains & Assets
      x-readme:
        code-samples:
        - language: javascript
          code: const supportedAssets = await fireblocks.getSupportedAssets();
          name: Fireblocks SDK Javascript example
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<GetSupportedAssetsResponse>> = fireblocks.blockchainsAssets.getSupportedAssets();'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<List<AssetTypeResponse>>> response = fireblocks.blockchainsAssets().getSupportedAssets();
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.blockchains_&_assets.get_supported_assets();
          name: Fireblocks SDK Python example
      responses:
        '200':
          description: Supported Assets Response
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSupportedAssetsResponse'
        default:
          $ref: '#/components/responses/Error'
      operationId: getSupportedAssets
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<GetSupportedAssetsResponse>> = fireblocks.blockchainsAssets.getSupportedAssets();'
      - lang: Java
        source: CompletableFuture<ApiResponse<List<AssetTypeResponse>>> response = fireblocks.blockchainsAssets().getSupportedAssets();
      - lang: Python
        source: response = fireblocks.blockchains_&_assets.get_supported_assets();
components:
  schemas:
    Asset:
      type: object
      properties:
        id:
          type: string
          description: The ID of the asset
          example: 9f9f7062-df90-4fc0-8697-96685184358d
        legacyId:
          type: string
          description: The Legacy ID of the asset
          example: USDT_ERC20
        blockchainId:
          type: string
          description: The ID of the asset's blockchain
          example: e85208ff-3b15-44e9-af14-0ed0280b2a15
        displayName:
          type: string
          description: Asset's display name
          example: Tether USD
        displaySymbol:
          type: string
          description: Asset's display symbol
          example: USDT
        assetClass:
          $ref: '#/components/schemas/AssetClass'
        onchain:
          $ref: '#/components/schemas/AssetDetailsOnchain'
        metadata:
          $ref: '#/components/schemas/AssetDetailsMetadata'
      required:
      - id
      - legacyId
      - assetClass
      - metadata
      - displayName
      - displaySymbol
 

# --- truncated at 32 KB (49 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/fireblocks/refs/heads/main/openapi/fireblocks-assets-api-openapi.yml