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

# List currencies (v4)

> Returns a paginated list of CeFi and DeFi currencies enriched with MoonPay capability flags (buy, sell, swap).

Results are filtered by the caller's IP geolocation and, when an `apiKey` is provided, by the partner account configuration. Pass a customer `authorization` bearer token to apply customer-specific eligibility rules.

Use `cursor` and `limit` for cursor-based pagination. When `nextCursor` is `null`, you have reached the last page.



## OpenAPI

````yaml GET /v4/currencies
openapi: 3.0.0
info:
  title: Ramps
  version: 1.0.0
servers:
  - url: https://api.moonpay.com
security: []
tags:
  - name: On-ramp
    description: Get quotes and transaction details for buying cryptocurrencies.
  - name: Off-ramp
    description: Get quotes and transaction details for selling cryptocurrencies.
  - name: Data
    description: >-
      Get currently supported countries, currencies, and payment methods. Also
      check the customers's IP address restrictions.
  - name: DefiToken
    description: Retrieve token data and token lists for DeFi assets.
paths:
  /v4/currencies:
    get:
      tags:
        - Data
      summary: List currencies (v4)
      description: >-
        Returns a paginated list of CeFi and DeFi currencies enriched with
        MoonPay capability flags (buy, sell, swap).


        Results are filtered by the caller's IP geolocation and, when an
        `apiKey` is provided, by the partner account configuration. Pass a
        customer `authorization` bearer token to apply customer-specific
        eligibility rules.


        Use `cursor` and `limit` for cursor-based pagination. When `nextCursor`
        is `null`, you have reached the last page.
      operationId: getV4Currencies
      parameters:
        - name: apiKey
          in: query
          description: >-
            Optional partner publishable API key. When provided, results may be
            scoped to currencies enabled for the partner account.
          required: false
          schema:
            type: string
        - name: search
          in: query
          description: >-
            Case-insensitive search term matched against currency name and
            symbol.
          required: false
          schema:
            type: string
        - name: networkCodes
          in: query
          description: >-
            Comma-separated list of network codes to include (for example
            `ethereum,polygon`).
          required: false
          schema:
            type: string
            example: ethereum,polygon
        - name: source
          in: query
          description: Filter by currency source. Defaults to `all`.
          required: false
          schema:
            type: string
            enum:
              - all
              - cefi
              - defi
            default: all
        - name: limit
          in: query
          description: Maximum number of currencies to return per page.
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 200
            default: 50
        - name: cursor
          in: query
          description: >-
            Opaque pagination cursor from a previous response's `nextCursor`
            field.
          required: false
          schema:
            type: string
        - name: sortBy
          in: query
          description: Field to sort results by. Defaults to `name`.
          required: false
          schema:
            type: string
            enum:
              - name
              - priceUsd
              - marketCap
            default: name
        - name: sortOrder
          in: query
          description: Sort direction. Defaults to `asc`.
          required: false
          schema:
            type: string
            enum:
              - asc
              - desc
            default: asc
        - name: contractAddresses
          in: query
          description: Comma-separated list of on-chain contract addresses to filter by.
          required: false
          schema:
            type: string
            example: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'
        - name: ids
          in: query
          description: Comma-separated catalog ids matching the response `id` field.
          required: false
          schema:
            type: string
            example: hyperliquid:0x54e00a5988577cb0b0c9ab0cb6ef7f4b
        - name: isSellSupported
          in: query
          description: >-
            When `true`, return only currencies that support sell. When `false`,
            return only currencies that do not support sell.
          required: false
          schema:
            type: boolean
        - name: isBuySupported
          in: query
          description: >-
            When `true`, return only currencies that support buy. When `false`,
            return only currencies that do not support buy.
          required: false
          schema:
            type: boolean
        - name: isNativeToken
          in: query
          description: >-
            When `true`, return only native network tokens. When `false`, return
            only non-native tokens.
          required: false
          schema:
            type: boolean
        - name: eligibleOnly
          in: query
          description: >-
            When `true` (default), return only currencies eligible for the
            caller's context (geolocation, account, and customer). Set to
            `false` to include ineligible currencies.
          required: false
          schema:
            type: boolean
            default: true
      responses:
        '200':
          description: Successful response — Paginated currency list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V4CurrenciesResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    V4CurrenciesResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/V4Currency'
        nextCursor:
          type: string
          nullable: true
          description: >-
            Cursor for the next page of results, or `null` when there are no
            more results.
          example: eyJvZmZzZXQiOjJ9
      required:
        - items
        - nextCursor
    Error:
      type: object
      description: >-
        Standard error response. See [Errors](/api-reference/widget/errors) for
        the full code catalog.
      properties:
        moonPayErrorCode:
          type: string
          description: >-
            Stable, machine-readable error code. System codes are prefixed
            `1_SYS_` (general) or `4_SYS_` (request validation); domain codes
            are prefixed `5_`. `1_SYS_UNKNOWN` with a 4xx status indicates a
            legacy validation error. Read `message` for the cause. See
            [Errors](/api-reference/widget/errors).
          example: 4_SYS_BAD_REQUEST
        message:
          type: string
          description: >-
            Human-readable description of the error. May change over time.
            Branch on `moonPayErrorCode` and the HTTP status, not on this text.
        type:
          type: string
          description: >-
            The error class name, e.g. `BadRequestError`, `UnauthorizedError`,
            `MoonPayApiError`.
        errors:
          type: array
          description: >-
            Field-level validation details, when the error was caused by invalid
            input. Empty or absent otherwise.
          items:
            type: object
            properties:
              property:
                type: string
                description: The invalid field.
              message:
                type: string
                description: Why the field is invalid.
              children:
                type: array
                items:
                  type: object
                description: Nested validation errors for object fields.
      required:
        - moonPayErrorCode
        - message
        - type
    V4Currency:
      type: object
      properties:
        id:
          type: string
          description: Unique currency identifier.
          example: defi:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
        tokenIdentifier:
          type: string
          description: Canonical token identifier (CAIP-19 style).
          example: token:ethereum:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
        name:
          type: string
          description: The currency's display name.
          example: USD Coin
        symbol:
          type: string
          description: The currency's ticker symbol.
          example: USDC
        icon:
          type: string
          nullable: true
          description: URL of the currency icon.
          example: https://static.moonpay.com/currencies/usdc.png
        website:
          type: string
          nullable: true
          description: Official website URL for the token.
        description:
          type: string
          nullable: true
          description: Short description of the token.
        whitepaper:
          type: string
          nullable: true
          description: URL of the token whitepaper.
        tokenCategories:
          type: array
          items:
            type: string
            enum:
              - NATIVE
              - STABLE
              - BASE_ASSET
              - GOVERNANCE
              - UTILITY
              - WRAPPED
              - LST
          description: >-
            Token category tags.


            Possible values are: `NATIVE`, `STABLE`, `BASE_ASSET`, `GOVERNANCE`,
            `UTILITY`, `WRAPPED`, `LST`
        source:
          type: string
          enum:
            - cefi
            - defi
          description: >-
            Whether the currency comes from MoonPay's CeFi catalog or DeFi token
            catalog.
          example: defi
        networkCode:
          type: string
          description: Blockchain network code.
          example: ethereum
        contractAddress:
          type: string
          nullable: true
          description: On-chain contract address. `null` for native tokens.
          example: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'
        onChainDecimals:
          type: integer
          nullable: true
          description: Token decimals on chain.
          example: 6
        moonpayDecimals:
          type: integer
          nullable: true
          description: Decimals used by MoonPay for this currency.
        priceUsd:
          type: string
          nullable: true
          description: Current USD price as a decimal string.
          example: '1.00'
        priceChange:
          type: object
          properties:
            1h:
              type: string
              nullable: true
              description: Price change over the last hour as a decimal string.
            24h:
              type: string
              nullable: true
              description: Price change over the last 24 hours as a decimal string.
        tokenStatus:
          type: array
          items:
            type: string
            enum:
              - VERIFIED
              - SUSPENDED
              - SCAM
              - DISABLED
          description: |-
            Token status flags from the pricing service.

            Possible values are: `VERIFIED`, `SUSPENDED`, `SCAM`, `DISABLED`
        stats:
          type: object
          nullable: true
          properties:
            volume24h:
              type: number
              nullable: true
              description: 24-hour trading volume in USD.
            circulatingMarketCap:
              type: number
              nullable: true
              description: Circulating market capitalization in USD.
        security:
          type: object
          nullable: true
          properties:
            mintable:
              type: boolean
              nullable: true
              description: Whether the token contract is mintable.
            freezable:
              type: boolean
              nullable: true
              description: Whether the token contract is freezable.
            top10HoldersPercent:
              type: number
              nullable: true
              description: Percentage of supply held by the top 10 holders.
            liquidity:
              type: number
              nullable: true
              description: Available liquidity in USD.
        isBuySupported:
          type: boolean
          description: Whether buy is supported for this currency in the caller's context.
          example: true
        isSellSupported:
          type: boolean
          description: Whether sell is supported for this currency in the caller's context.
          example: true
        isSwapBaseSupported:
          type: boolean
          description: Whether this currency can be used as the base asset in a swap.
          example: false
        isSwapQuoteSupported:
          type: boolean
          description: Whether this currency can be used as the quote asset in a swap.
          example: true

````