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

# List tokens

> Tokens observed across providers, merged and deduplicated. Every row says whether it is currently routable as a payment destination, so source-token and balance consumers retain their full inventory without advertising it as payable.

The default projection contains only payable destinations. Pass `scope=all` for source-token, balance, or general-swap inventory.

Filter by `chains` to keep responses small. A SANDBOX key sees only testnet tokens here, whatever it asks for.



## OpenAPI

````yaml /api-reference/openapi.json get /v1/tokens
openapi: 3.1.0
info:
  title: Hypermid API
  description: >-
    Price and execute cross-chain swaps, read reference data and payer balances,
    and quote the fiat on-ramp. Quotes return an executable `transactionRequest`
    your frontend submits directly, so Hypermid never custodies the funds.


    Payments — `checkout`, `deposit`, and `withdrawal` sessions — and
    payment-link management are available through these merchant REST endpoints
    and the [`@hypermid/sdk`](https://docs.hypermid.io/sdk/payments) package.
    Payer-facing routes are intentionally omitted.
  version: 0.2.0
  contact: {}
servers:
  - url: https://server.hypermid.io
    description: Production — live keys (sk_live_…)
  - url: https://server.hypermid.io
    description: Sandbox — test keys (sk_test_…), testnets only
security: []
tags:
  - name: payments
    description: >-
      Create and read payment sessions, manage webhooks, and configure payout
      addresses with a secret partner key.
  - name: payment links
    description: >-
      Create, read, version, and revoke reusable checkout payment links with a
      secret partner key.
  - name: quote
    description: >-
      Route pricing for the orchestration product. Returns an executable
      `transactionRequest` your frontend submits directly, so Hypermid never
      custodies the funds.
  - name: status
    description: >-
      Resolve the state of a submitted swap or transfer. Two endpoints with
      different audiences — see each one's description before choosing.
  - name: catalog
    description: >-
      Reference data an integration needs to render a picker: supported chains
      and tokens, prices, routable connections, and fee configuration. A sandbox
      key sees only testnets here.
  - name: balances
    description: Read a payer wallet's token balances across supported chains.
  - name: onramp
    description: >-
      The fiat rail — card and bank payment for crypto, quoted and settled
      through our onramp partner. Requires per-partner onramp credentials on
      your account.
  - name: webhooks
    description: >-
      Events Hypermid sends TO you when a session completes. These are requests
      we make to your server, not endpoints you call.
paths:
  /v1/tokens:
    get:
      tags:
        - catalog
      summary: List tokens
      description: >-
        Tokens observed across providers, merged and deduplicated. Every row
        says whether it is currently routable as a payment destination, so
        source-token and balance consumers retain their full inventory without
        advertising it as payable.


        The default projection contains only payable destinations. Pass
        `scope=all` for source-token, balance, or general-swap inventory.


        Filter by `chains` to keep responses small. A SANDBOX key sees only
        testnet tokens here, whatever it asks for.
      operationId: CatalogController_getTokens
      parameters:
        - name: chains
          required: false
          in: query
          description: Comma-separated canonical chain ids to filter to (e.g. `8453,369`).
          schema:
            example: 8453,369
            type: string
        - name: keywords
          required: false
          in: query
          description: Free-text filter on symbol / name / exact address.
          schema:
            example: usdc
            type: string
        - name: keys
          required: false
          in: query
          description: >-
            Comma-separated assetKeys to return prices for (prices endpoint
            only). Use this instead of pulling the whole map when you only need
            a few tokens.
          schema:
            example: 8453:0x833589fcd6edb6e08f4c7c32d4f71b54bda02913,369:native:pls
            type: string
        - name: network
          required: false
          in: query
          description: Filter to mainnet or testnet chains. Omit for both.
          schema:
            example: mainnet
            enum:
              - mainnet
              - testnet
            type: string
        - name: scope
          required: false
          in: query
          description: >-
            Token inventory purpose. The default returns only payable
            destinations; `all` retains source-only and balance-visible tokens
            with their routable flag.
          schema:
            example: destination
            enum:
              - destination
              - all
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokensResponseDto'
components:
  schemas:
    TokensResponseDto:
      type: object
      properties:
        tokens:
          description: The token catalog, keyed by chain id.
          type: array
          items:
            $ref: '#/components/schemas/TokenCatalogEntryDto'
      required:
        - tokens
    TokenCatalogEntryDto:
      type: object
      properties:
        chainId:
          type: number
          example: 8453
          description: Canonical chain id (EVM real id; ≥900000000 for non-EVM).
        address:
          type:
            - object
            - 'null'
          example: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
          description: Token contract address; null for native/addressless.
        symbol:
          type: string
          example: USDC
          description: Token symbol, for display.
        name:
          type: string
          example: USD Coin
          description: Human-readable chain name.
        decimals:
          type: number
          example: 6
          description: Decimal places — divide raw amounts by 10^decimals for display.
        logoURI:
          type: string
          example: https://.../usdc.png
          description: Token icon URL, if known.
        priceUsd:
          type: number
          example: 0.9998
          description: USD price when a source or price feed carries one.
        marketCapRank:
          type: number
          example: 1
          description: >-
            Market-cap rank (1 = largest), matched by symbol. Absent when our
            price source does not list the symbol. Intended for sorting
            zero-balance tokens by popularity, so a client does not need its own
            market-data feed.
        sources:
          type: object
          description: Which sources contributed this token + each source's own id.
          example:
            lifi:
              address: 0x8335...
            curated:
              address: 0x8335...
          additionalProperties: true
        routable:
          type: boolean
          example: true
          description: >-
            Whether Hypermid can currently deliver this token as a payment
            destination. Source-token and balance consumers may still use rows
            where this is false.
      required:
        - chainId
        - address
        - symbol
        - name
        - decimals
        - sources
        - routable

````