Chainflip Broker as a Service Assets API

The assets you can swap: their ids, decimals, minimum swap amounts, USD prices and logos. No key needed.

Operations 3

GET /assets Get all assets #
GET /assets/{network} Get all assets on a given network #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/chainflip-broker-io:chainflip-broker-io-assets-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

chainflip-broker-io-assets-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Chainflip Broker as a Service Assets API
  description: Run your own Chainflip Broker without any hassle.
  version: v1
  x-onboarding:
    freeToStart: true
    noKeyNeeded:
    - /mcp
    - /assets
    - /networks
    apiKeys:
      selfServe: true
      signup: /register
      secret: false
    sandbox: Testing environment on the Chainflip Perseverance testnet; its URLs are listed at /onboarding.
    firstCall: GET /assets
    facts: /onboarding
servers:
- url: /
  description: 'Free to start. The MCP server (/mcp), /assets and /networks need no key or account; get an API key self-serve at /register, free and without payment details. Onboarding facts: /onboarding.'
tags:
- name: Assets
  description: 'The assets you can swap: their ids, decimals, minimum swap amounts, USD prices and logos. No key needed.'
paths:
  /assets:
    get:
      tags:
      - Assets
      summary: Get all assets
      description: 'Lists every asset you can swap, with its network, ticker, decimals, minimum swap

        amount and current USD price. An asset''s `id` is what you pass as

        `sourceAsset` or `destinationAsset` on every other endpoint.'
      operationId: listAssets
      responses:
        '200':
          description: All available assets.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChainflipBaas.Assets.AssetsResponse'
        '500':
          description: An error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
              example:
                type: https://tools.ietf.org/html/rfc9110#section-15.6.1
                title: An error occurred while processing your request.
                status: 500
                traceId: 00-982607166a542147b435be3a847ddd71-fc75498eb9f09d48-00
  /assets/{network}:
    get:
      tags:
      - Assets
      summary: Get all assets on a given network
      description: The same list as `listAssets`, limited to the assets on one network.
      operationId: listNetworkAssets
      parameters:
      - name: network
        in: path
        description: The network id to filter on.
        required: true
        schema:
          enum:
          - btc
          - eth
          - dot
          - arb
          - sol
          - hub
          - tron
          type: string
          description: 'Supported networks. Member names are lowercase on purpose: they are the wire-format network

            ids used in asset identifiers (e.g. "usdc.eth") and API responses.'
          x-ms-enum:
            name: Network
            modelAsString: true
        example: eth
      responses:
        '200':
          description: All available assets.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChainflipBaas.Assets.AssetsResponse'
        '400':
          description: The request has invalid information.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ValidationProblemDetails'
              example:
                type: https://tools.ietf.org/html/rfc7231#section-6.5.1
                title: One or more validation errors occurred.
                status: 400
                traceId: 00-982607166a542147b435be3a847ddd71-fc75498eb9f09d48-00
                errors:
                  network:
                  - The value 'nope' is not valid.
        '500':
          description: An error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
              example:
                type: https://tools.ietf.org/html/rfc9110#section-15.6.1
                title: An error occurred while processing your request.
                status: 500
                traceId: 00-982607166a542147b435be3a847ddd71-fc75498eb9f09d48-00
  /assets/{asset}/logo.svg:
    get:
      tags:
      - Assets
      summary: Get the logo for an asset
      description: Returns the asset's logo as an SVG image, cacheable for an hour.
      operationId: getAssetLogo
      parameters:
      - name: asset
        in: path
        description: The asset id, as listed by `listAssets`.
        required: true
        schema:
          type: string
        example: btc.btc
      responses:
        '200':
          description: The asset logo in SVG format.
          content:
            image/svg+xml:
              schema:
                type: string
        '400':
          description: The request has invalid information.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ValidationProblemDetails'
              example:
                type: https://tools.ietf.org/html/rfc9110#section-15.5.1
                title: One or more validation errors occurred.
                status: 400
                detail: The request has invalid information.
                traceId: 00-982607166a542147b435be3a847ddd71-fc75498eb9f09d48-00
                errors: {}
        '500':
          description: An error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails'
              example:
                type: https://tools.ietf.org/html/rfc9110#section-15.6.1
                title: An error occurred while processing your request.
                status: 500
                traceId: 00-982607166a542147b435be3a847ddd71-fc75498eb9f09d48-00
components:
  schemas:
    ChainflipBaas.Assets.AssetInfo:
      type: object
      properties:
        enabled:
          type: boolean
          description: Is the asset available for swapping or not?
          example: true
        id:
          type: string
          description: 'The asset id, `ticker.network`: what you pass as `sourceAsset` or `destinationAsset` on every

            other endpoint.'
          example: flip.eth
        direction:
          enum:
          - ingress
          - egress
          - both
          type: string
          description: Direction an asset can be used in. Ingress assets can only be used to swap from. Egress assets can only be used to swap to. Assets with both can be used to swap from and to.
          example: both
          x-ms-enum:
            name: AssetDirection
            modelAsString: true
        ticker:
          type: string
          description: Display ticker of the asset.
          example: FLIP
        name:
          type: string
          description: Descriptive name of the asset.
          example: Chainflip
        network:
          type: string
          description: Name of the network where the asset is located.
          example: Ethereum
        contractAddress:
          type:
          - string
          - 'null'
          description: The contract address for tokens which have one.
          example: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
        networkLogo:
          type: string
          description: A url to the logo for the network.
          readOnly: true
          example: /networks/eth/logo.svg
        assetLogo:
          type: string
          description: A url to the logo for the asset.
          readOnly: true
          example: /assets/flip.eth/logo.svg
        decimals:
          type: integer
          description: Number of decimals the asset native value contains.
          format: int32
          example: 18
        minimalAmount:
          type:
          - number
          - 'null'
          description: Minimum amount required to swap the asset.
          format: double
          readOnly: true
          example: 4
        minimalAmountNative:
          type:
          - string
          - 'null'
          description: Minimum amount in native units required to swap the asset.
          readOnly: true
          example: '4000000000000000000'
        usdPrice:
          type:
          - number
          - 'null'
          description: Current pool price of the asset in USDC.
          format: double
          readOnly: true
          example: 4
        usdPriceNative:
          type:
          - string
          - 'null'
          description: Current pool price of the asset in USDC native units.
          readOnly: true
          example: '4000000000000000000'
        platforms:
          type: array
          items:
            type: string
          description: The providers that support this asset. Pass one as `platform` to `startSwap`.
          readOnly: true
          example:
          - chainflip
      additionalProperties: false
      description: 'An asset you can swap: its id, network, decimals, minimum swap amount and current USD price.'
    Microsoft.AspNetCore.Mvc.ValidationProblemDetails:
      type: object
      properties:
        type:
          type:
          - string
          - 'null'
          description: A URI reference [RFC3986] that identifies the problem type. This specification encourages that, when dereferenced, it provide human-readable documentation for the problem type (e.g., using HTML [W3C.REC-html5-20141028]). When this member is not present, its value is assumed to be "about:blank".
        title:
          type:
          - string
          - 'null'
          description: A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization(e.g., using proactive content negotiation; see[RFC7231], Section 3.4).
        status:
          type:
          - integer
          - 'null'
          description: The HTTP status code([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
          format: int32
        detail:
          type:
          - string
          - 'null'
          description: A human-readable explanation specific to this occurrence of the problem.
        instance:
          type:
          - string
          - 'null'
          description: A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
        errors:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: The validation errors associated with this problem details.
      additionalProperties:
        description: Problem type definitions MAY extend the problem details object with additional members. Extension members appear in the same namespace as other members of a problem type.
      description: 'A request that failed input validation (RFC 9457 problem details): `errors` lists the messages per parameter.'
    ChainflipBaas.Assets.AssetsResponse:
      type: object
      properties:
        assets:
          type: array
          items:
            $ref: '#/components/schemas/ChainflipBaas.Assets.AssetInfo'
          description: All available assets.
          readOnly: true
      additionalProperties: false
      description: The assets you can swap, ordered by id.
    Microsoft.AspNetCore.Mvc.ProblemDetails:
      type: object
      properties:
        type:
          type:
          - string
          - 'null'
          description: A URI reference [RFC3986] that identifies the problem type. This specification encourages that, when dereferenced, it provide human-readable documentation for the problem type (e.g., using HTML [W3C.REC-html5-20141028]). When this member is not present, its value is assumed to be "about:blank".
        title:
          type:
          - string
          - 'null'
          description: A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization(e.g., using proactive content negotiation; see[RFC7231], Section 3.4).
        status:
          type:
          - integer
          - 'null'
          description: The HTTP status code([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.
          format: int32
        detail:
          type:
          - string
          - 'null'
          description: A human-readable explanation specific to this occurrence of the problem.
        instance:
          type:
          - string
          - 'null'
          description: A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
        code:
          type: string
          description: 'A stable, machine-readable error code (lowercase snake_case, e.g. "asset_disabled") identifying why the request failed, so clients can branch without matching the human-readable `detail` text. The HTTP status follows the code: 400 when the request as sent cannot be fulfilled, 404 when a status lookup found nothing to answer with, 503 for a temporary upstream condition, 500 when unclassified. Omitted when the failure has no classification. Clients must tolerate both an omitted code and unrecognised future values. See the Error codes reference: https://docs.chainflip-broker.io/features/error-codes'
          example: asset_disabled
      additionalProperties:
        description: Problem type definitions MAY extend the problem details object with additional members. Extension members appear in the same namespace as other members of a problem type.
      description: An error response (RFC 9457 problem details). Branch on `code` when it is present, never on the `detail` text.
  securitySchemes:
    apiKey:
      type: apiKey
      description: Your partner API key, from registering at /register on this site. It identifies your account and is not a secret; it grants no access beyond your own partner's quotes, swaps, fees and statuses. There is no OAuth and there are no scopes. A key is also accepted in an X-API-Key request header; when both are present, this query parameter wins, even when it is empty.
      name: apiKey
      in: query
    apiKeyHeader:
      type: apiKey
      description: Your partner API key, from registering at /register on this site, sent as a request header so it does not appear in URLs that proxies and access logs capture. It identifies your account and is not a secret; it grants no access beyond your own partner's quotes, swaps, fees and statuses. There is no OAuth and there are no scopes. When an apiKey query parameter is present it wins.
      name: X-API-Key
      in: header