# Cryptocurrencies

Retrieve supported cryptocurrencies for the specified transaction type as part of the configuration data required to build onboarding and transaction flows.
**Use Cases**:
- Display available cryptocurrency options to customers
- Show supported blockchains for each cryptocurrency
- Pre-configure asset and network selectors before pricing or ramp creation
- Filter cryptocurrencies by transaction direction

**Transaction Types**:
- `onramp` - Cryptocurrencies available for buying (fiat → crypto)
- `offramp` - Cryptocurrencies available for selling (crypto → fiat)

**Response Structure**: Each cryptocurrency includes:
- `crypto`: Unique coin code (e.g., `BTC`, `ETH`, `USDT`)
- `name`: Human-readable display name
- `blockchains`: Array of supported blockchain networks, each with contract address, minimum amount, default flag, and restricted countries

Endpoint: GET /eapi/v0/cryptocurrencies/{transactionType}
Version: 0 BETA
Security: HMACAuth

## Security:

  - `HMACAuth` (unknown)
    apiKey in header Authorization

## Path parameters:

  - `transactionType` (string, required)
    The transaction direction used to retrieve available cryptocurrencies.

**Values**:
- `onramp` - Buy cryptocurrency using fiat
- `offramp` - Sell cryptocurrency and receive fiat

## Response 200:

  - `200` (unknown)
    Successful response with supported cryptocurrencies and blockchains for the selected transaction type.

## Response 200 fields (application/json):

  - `data` (array, required)
    Array of supported cryptocurrencies.

  - `data.crypto` (string, required)
    The cryptocurrency coin code.
    Example: BTC

  - `data.name` (string, required)
    The display name of the cryptocurrency.
    Example: Bitcoin

  - `data.blockchains` (array, required)
    The list of blockchains on which this cryptocurrency is supported.

  - `data.blockchains.blockchain` (string, required)
    The blockchain network code.
    Example: TRON

  - `data.blockchains.name` (string, required)
    The display name of the blockchain network.
    Example: TRON

  - `data.blockchains.isDefault` (boolean, required)
    Indicates whether this is the default blockchain for the cryptocurrency.
    Example: true

  - `data.blockchains.address` (string | null, required)
    The contract address of the token on this blockchain, if applicable. `null` for native coins.
    Example: TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t

  - `data.blockchains.network` (string | null, required)
    A network or asset identifier used to disambiguate the asset on this blockchain, if applicable. `null` if not set.
    Example: null

  - `data.blockchains.minimum` (string, required)
    The minimum transaction amount for this asset on this blockchain, as a decimal string.
    Example: 0.00001

  - `data.blockchains.unsupportedCountries` (array, required)
    ISO 3166-1 alpha-2 country codes where this asset is unavailable.
    Example: []

## Response 400:

  - `400` (unknown)
    Bad request due to invalid input.
**Common Causes**:
- Malformed JSON in request body
- Invalid data types
- Missing required fields
- Invalid request structure

## Response 400 fields (application/json):

  - `message` (string)
    Human-readable error message
    Example: Bad Request

  - `code` (integer)
    HTTP status code
    Example: 400

  - `traceId` (string)
    Unique identifier for this error instance. Use this when contacting support.
    Example: 2b6fc5d0-57e4-4b5a-9e3c-6cfbb6d8023f

## Response 401:

  - `401` (unknown)
    Authentication failed or missing credentials.
**Common Causes**:
- Missing Authorization header
- Invalid API key
- Expired or invalid HMAC signature
- Incorrect timestamp (must be within 5 minutes of server time)

## Response 401 fields (application/json):

  - `message` (string)
    Human-readable error message
    Example: Unauthenticated.

  - `code` (integer)
    HTTP status code
    Example: 401

  - `traceId` (string)
    Unique identifier for this error instance
    Example: 2b6fc5d0-57e4-4b5a-9e3c-6cfbb6d8023f

## Response 422:

  - `422` (unknown)
    Validation error - the transactionType path parameter is invalid.
**Common Causes**:
- Supplied value is not `onramp` or `offramp`
- Parameter is missing or empty

## Response 422 fields (application/json):

  - `status` (integer)
    HTTP status code
    Example: 422

  - `message` (string)
    Validation error message
    Example: Invalid transaction type. Must be one of onramp and offramp

  - `errors` (object)
    Map of field names to error messages.
    Example: {"transactionType":["Invalid transaction type. Must be one of onramp and offramp"]}

## Response 500:

  - `500` (unknown)
    Unexpected server error.
**Action**:
- Retry with exponential backoff (up to 3 attempts)
- If error persists, contact support with the traceId

**Note**: This is a temporary issue on our side, not a problem with your request.

## Response 500 fields (application/json):

  - `message` (string)
    Human-readable error message
    Example: Server Error

  - `code` (integer)
    HTTP status code
    Example: 500

  - `traceId` (string)
    Unique identifier for this error instance. **Important**: Include this when contacting support.
    Example: 2b6fc5d0-57e4-4b5a-9e3c-6cfbb6d8023f

## Response 200 examples:

  - `On-ramp cryptocurrencies` (unknown)
    Supported cryptocurrencies available for purchase (fiat → crypto)

  - `Off-ramp cryptocurrencies` (unknown)
    Supported cryptocurrencies available for selling (crypto → fiat)

