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

# Retrieve protocol token list for a chain

> Returns the token list for a given protocol on a specific chain. Use 'all' for the chain parameter to fetch tokens on every supported chain.



## OpenAPI

````yaml /api-reference/openapi.json get /action/tokens/{chain}/{protocol}
openapi: 3.0.0
info:
  title: Relayer
  description: >-
    Relayer API — Kit-based crypto infrastructure for OTC exchange, wallet
    signing, payouts, and widget actions.
  version: '1.0'
  contact: {}
servers:
  - url: https://testnet.relayer.fi/v1
    description: Sandbox (testnet wallets, no real fiat)
  - url: https://api.relayer.fi/v1
    description: Production (mainnet wallets, regulated fiat rails)
security:
  - api-key: []
tags:
  - name: 'Action: Builders'
    description: Transaction metadata builders
  - name: 'Action: Directory'
    description: Widget directory
  - name: 'Action: Execute'
  - name: 'Action: Tokens'
    description: Token lists per chain/protocol
  - name: Addresses
  - name: Agents
  - name: App
    description: Application endpoints
  - name: 'Payout: Accounts'
    description: Payment execution
  - name: 'Payout: Off-ramp'
  - name: 'Payout: On-ramp'
  - name: 'Payout: Orders'
  - name: 'Payout: Recipients'
    description: Beneficiary management
  - name: Signing - Passkeys
  - name: Signing - Recovery
  - name: Signing Approvals
    description: Transaction signing approvals
  - name: Signing Policies
    description: Signing policy management
  - name: Transactions
    description: Transaction signing and broadcasting
  - name: Wallets
    description: Wallet and address management
paths:
  /action/tokens/{chain}/{protocol}:
    get:
      tags:
        - 'Action: Tokens'
      summary: Retrieve protocol token list for a chain
      description: >-
        Returns the token list for a given protocol on a specific chain. Use
        'all' for the chain parameter to fetch tokens on every supported chain.
      operationId: TokensController_findTokens
      parameters:
        - name: chain
          required: true
          in: path
          description: >-
            Chain identifier. Accepts numeric chain IDs (e.g. '43114'), chain
            slugs (e.g. 'avalanche'), or 'all' to fetch every supported chain.
          schema:
            example: all
            type: string
        - name: protocol
          required: true
          in: path
          description: DEX protocol identifier (e.g. lfj, pangolin).
          schema:
            example: lfj
            type: string
      responses:
        '200':
          description: Tokens retrieved successfully.
        '400':
          description: Invalid protocol or chain parameter.
        '500':
          description: Unexpected error fetching tokens.
      x-codeSamples:
        - lang: bash
          label: cURL
          source: |-
            curl https://api.relayer.fi/v1/action/tokens/base/uniswap \
              -H "Authorization: ApiKey $RELAYER_API_KEY"
        - lang: TypeScript
          label: Node.js
          source: >-
            const response = await
            fetch(`https://api.relayer.fi/v1/action/tokens/base/uniswap`, {
              headers: { Authorization: `ApiKey ${process.env.RELAYER_API_KEY}` },
            });

            // Returns the protocol's token list for the chain — useful for
            hydrating

            // dropdowns in custom widget UIs.
components:
  securitySchemes:
    api-key:
      type: apiKey
      in: header
      name: Authorization
      description: 'Use this format: `ApiKey <your_api_key>`'

````