> ## Documentation Index
> Fetch the complete documentation index at: https://docs.etherfuse.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List supported assets

> Lists the markets and tokens a quote can use. Each item's `asset` is the value to send as `sourceAsset` or `destinationAsset` on [Create quote](/v2/api-reference/quotes/create-quote).

- **Markets** are a currency in a country, such as MXN in Mexico, with the rails that move it (`spei`, `pix`).
- **Tokens** are the stablebonds and stablecoins on each chain.

With no filters you get every market and every token we support. Each filter narrows the lists, and filters combine:

- `chain` keeps tokens on that chain. Markets have no chain, so none come back.
- `currency` keeps markets in that currency and tokens backed by it.
- `paymentAccountId` keeps what that account can send or receive. A bank account gives its market and the rails it is registered on; a wallet gives the tokens on each chain it is registered on.
- `organizationId` does the same for every payment account the organization holds.

A payment account or organization your API key cannot act for returns `404` `not-found`. With both ids, the account must belong to that organization.



## OpenAPI

````yaml openapi-v2.json GET /supported_assets
openapi: 3.1.0
info:
  title: Etherfuse FX API
  description: >-
    Partner-facing ramp API, version 2: payment accounts, quotes, orders and
    webhooks.
  license:
    name: Proprietary
  version: 2.0.0
servers:
  - url: https://api.sand.etherfuse.com
    description: Sandbox
security:
  - ApiKeyAuth: []
tags:
  - name: Payment Accounts
    description: >-
      Register the bank accounts and wallets that money moves from and to, and
      read their readiness per rail.
  - name: Quotes
    description: Price a transfer between two registered payment accounts.
  - name: Orders
    description: Create orders from quotes and track them.
  - name: Webhook Subscriptions
    description: Subscribe to webhook events.
  - name: Webhook Events
    description: Payloads Etherfuse sends to your webhook subscriptions.
  - name: Sandbox
    description: Endpoints that work only in sandbox, for testing.
  - name: Assets
    description: The markets and tokens a quote can use, and the balances of a wallet.
  - name: Authentication
    description: >-
      Partner JWT authentication: exchange a JWT for an access token, or launch
      a user into the app.
  - name: KYC
    description: >-
      Submit a customer's verification data, documents and questionnaire
      answers, import a verification they already passed elsewhere, and check
      where their KYC stands.
  - name: KYB
    description: Check where a business organization's KYB stands.
  - name: Lookup
    description: >-
      Public reference data: exchange rates, stablebonds, bond costs, country
      codes.
  - name: Organizations
    description: >-
      Your organization, your default partner fee, and the customer
      organizations you create.
  - name: Members
    description: >-
      The people who belong to a customer business organization and complete its
      KYB.
  - name: Statements
    description: >-
      Monthly revenue share statements for closed months, as a list or as a CSV
      or PDF download.
paths:
  /supported_assets:
    get:
      tags:
        - Assets
      summary: List supported assets
      description: >-
        Lists the markets and tokens a quote can use. Each item's `asset` is the
        value to send as `sourceAsset` or `destinationAsset` on [Create
        quote](/v2/api-reference/quotes/create-quote).


        - **Markets** are a currency in a country, such as MXN in Mexico, with
        the rails that move it (`spei`, `pix`).

        - **Tokens** are the stablebonds and stablecoins on each chain.


        With no filters you get every market and every token we support. Each
        filter narrows the lists, and filters combine:


        - `chain` keeps tokens on that chain. Markets have no chain, so none
        come back.

        - `currency` keeps markets in that currency and tokens backed by it.

        - `paymentAccountId` keeps what that account can send or receive. A bank
        account gives its market and the rails it is registered on; a wallet
        gives the tokens on each chain it is registered on.

        - `organizationId` does the same for every payment account the
        organization holds.


        A payment account or organization your API key cannot act for returns
        `404` `not-found`. With both ids, the account must belong to that
        organization.
      operationId: v2ListSupportedAssets
      parameters:
        - name: chain
          in: query
          required: false
          description: Only tokens on this chain.
          schema:
            $ref: '#/components/schemas/Chain'
        - name: currency
          in: query
          required: false
          description: >-
            Only markets in this currency and tokens backed by it, as an ISO
            4217 code. Not case sensitive.
          schema:
            type: string
            example: MXN
        - name: paymentAccountId
          in: query
          required: false
          description: Only what this payment account can send or receive.
          schema:
            type: string
            format: uuid
        - name: organizationId
          in: query
          required: false
          description: >-
            Only what this organization's payment accounts can send or receive.
            An organization with no payment accounts returns two empty lists.
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: The supported markets and tokens.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SupportedAssets'
        '400':
          $ref: '#/components/responses/InvalidRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
components:
  schemas:
    Chain:
      type: string
      enum:
        - stellar
        - solana
        - base
        - polygon
        - monad
        - avalanche
      description: The chain a wallet is on.
    SupportedAssets:
      type: object
      required:
        - markets
        - tokens
      properties:
        markets:
          type: array
          items:
            $ref: '#/components/schemas/MarketAsset'
        tokens:
          type: array
          items:
            $ref: '#/components/schemas/TokenAsset'
      example:
        markets:
          - asset: MXN
            country: MX
            currency: MXN
            rails:
              - spei
        tokens:
          - asset: CETES:GC3CW7EDYRTWQ635VDIGY6S4ZUF5L6TQ7AA4MWS7LEQDBLUSZXV7UPS4
            chain: stellar
            currency: MXN
            symbol: CETES
            name: Etherfuse CETES
            image: https://assets.etherfuse.com/cetes.png
          - asset: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
            chain: solana
            currency: USD
            symbol: USDC
            name: USD Coin
            image: null
    MarketAsset:
      type: object
      description: A currency in a country, and the rails that move it.
      required:
        - asset
        - country
        - currency
        - rails
      properties:
        asset:
          type: string
          description: >-
            The value to send as `sourceAsset` or `destinationAsset`: the
            currency code.
        country:
          type: string
          description: ISO 3166-1 alpha-2 country code.
        currency:
          type: string
          description: ISO 4217 currency code.
        rails:
          type: array
          items:
            $ref: '#/components/schemas/PaymentRail'
          description: The rails that move this currency in this country.
    TokenAsset:
      type: object
      description: A stablebond or stablecoin on one chain.
      required:
        - asset
        - chain
        - currency
        - symbol
        - name
        - image
      properties:
        asset:
          type: string
          description: >-
            The value to send as `sourceAsset` or `destinationAsset`: the mint
            on Solana, the contract on EVM chains, `CODE:ISSUER` on Stellar.
        chain:
          $ref: '#/components/schemas/Chain'
        currency:
          type:
            - string
            - 'null'
          description: The fiat currency the token is backed by, as an ISO 4217 code.
        symbol:
          type: string
        name:
          type: string
        image:
          type:
            - string
            - 'null'
          format: uri
    Problem:
      type: object
      description: >-
        RFC 9457 problem details. Every v2 error uses this body with content
        type `application/problem+json`. `errors` is present only on
        `validation-error`. `required` and `missing` are present only on
        `registration-info-required`.
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          format: uri
          description: >-
            `https://docs.etherfuse.com/ramp/v2/errors/` followed by the problem
            slug, for example
            `https://docs.etherfuse.com/ramp/v2/errors/quote-expired`. Switch on
            this value.
          example: https://docs.etherfuse.com/ramp/v2/errors/quote-expired
        title:
          type: string
          description: Short summary of the problem type.
          example: Quote expired
        status:
          type: integer
          description: The HTTP status code.
          example: 400
        detail:
          type: string
          description: Human-readable explanation of this occurrence. Do not parse it.
          example: >-
            quote 5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b has expired or does not
            exist
        instance:
          type: string
          description: Unique identifier for this occurrence. Quote it to support.
          example: >-
            tag:etherfuse.com,2026-08-28:R2-10120/0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d
        errors:
          type: array
          description: Present on `validation-error`. One entry per invalid field.
          items:
            $ref: '#/components/schemas/FieldViolation'
        required:
          type: array
          description: >-
            Present on `registration-info-required`. Every registration field
            the route requires, as JSON Pointers into the request, for example
            `#/registrationInfo/taxId`.
          items:
            type: string
        missing:
          type: array
          description: >-
            Present on `registration-info-required`. The required fields you
            must still send, as JSON Pointers into the request.
          items:
            type: string
    PaymentRail:
      type: string
      enum:
        - spei
        - pix
        - solana
        - base
        - polygon
        - monad
        - stellar
        - avalanche
      description: The network that moves the money. For a wallet, the rail is its chain.
    FieldViolation:
      type: object
      required:
        - pointer
        - detail
      properties:
        pointer:
          type: string
          description: >-
            JSON Pointer to the field in the request, for example
            `#/accountDetails/clabe`.
          example: '#/accountDetails/clabe'
        detail:
          type: string
          description: What is wrong with the field.
          example: This field is required.
  responses:
    InvalidRequest:
      description: >-
        `invalid-request`: a path, query or body value is malformed, or
        `pageSize` is 0 or over 100.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
    Unauthorized:
      description: >-
        `unauthorized`: the `Authorization` header is missing, not ASCII, or
        does not hold a valid API key.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
    NotFound:
      description: >-
        `not-found`: your API key cannot act for this organization, or no such
        resource belongs to it.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
    InternalError:
      description: >-
        `internal-error`: an unexpected error on our side. Retry with backoff,
        and quote `instance` to support if it persists.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: API key sent in the Authorization header, with no `Bearer` prefix.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.