# Cryptocurrency

Cryptocurrency API allows merchants to get some information about cryptocurrencies, that may be used during invoice creation

## Entities

### Cryptocurrency

`Cryptocurrency` entity represents single cryptocurrency

{% tabs %}
{% tab title="TypeScript" %}
Type may be imported as:

```typescript
import type { Cryptocurrency } from '@simplepay-ai/api-client';
```

Type definition:

```typescript
interface Cryptocurrency {
    /**
     * Cryptocurrency ID
     *
     * @example '4967cf90-ce74-4edf-9b4e-f6392de1c95a'
     */
    id: string;

    /**
     * Cryptocurrency symbol
     *
     * @example 'USDT'
     */
    symbol: string;

    /**
     * Cryptocurrency name
     *
     * @example 'Tether'
     */
    name: string;

    /**
     * Number of decimal places
     *
     * @example 18
     */
    decimals: number;

    /**
     * Is stablecoin
     *
     * @example true
     */
    stable: boolean;

    /**
     * List of blockchains in which cryptocurrency may be accepted
     */
    networks?: Network[];

    /**
     * Conversion rates to fiat currencies
     *
     * Key is ISO 4217 alphabetic code of fiat currency
     *
     * Value is price for 1 coin
     *
     * @example {
     *   USD: 1,
     *   EUR: 0.98
     * }
     * @see https://en.wikipedia.org/wiki/ISO_4217
     */
    rates?: CryptocurrencyRates;
}
```

{% endtab %}
{% endtabs %}

### Network

`Network` entity represents single blockchain network

{% tabs %}
{% tab title="TypeScript" %}
Type may be imported as:

```typescript
import type { Network } from '@simplepay-ai/api-client';
```

Type definition:

```typescript
interface Network {
    /**
     * Network ID
     *
     * @example '7639e9e4-6306-46a9-9acc-cc943d0d0c60'
     */
    id: string;

    /**
     * Network symbol
     *
     * @example 'ethereum'
     */
    symbol: string;

    /**
     * Network name
     *
     * @example 'Ethereum'
     */
    name: string;

    /**
     * Network type
     *
     * @example 'EVM'
     */
    type: string;
}
```

{% endtab %}
{% endtabs %}

### CryptocurrencyRates

`CryptocurrencyRates` entity is an object with conversion rates to fiat currencies

Key is [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) alphabetic code of fiat currency

Value is price for 1 coin

{% tabs %}
{% tab title="TypeScript" %}
Type may be imported as:

```typescript
import type { CryptocurrencyRates } from '@simplepay-ai/api-client';
```

Type definition:

```typescript
interface CryptocurrencyRates {
    [key: string]: number;
}
```

{% endtab %}
{% endtabs %}

## Methods

### List cryptocurrencies

{% tabs %}
{% tab title="TypeScript" %}
Request type definition:

```typescript
type CryptocurrencyListRequest = {
    /**
     * Return cryptocurrencies for specific App ID
     *
     * @example 'db50e5fc-1b91-49c4-8b6a-d33a44ffdda5'
     */
    appId?: string;

    /**
     * Include cryptocurrency rates in response
     *
     * @default false
     */
    rates?: boolean;

    /**
     * Include networks list in response
     *
     * @default false
     */
    networks?: boolean;
};
```

Validation errors type definition:

```typescript
export type CryptocurrencyListErrors = {
    appId?: 'uuid4';
    rates?: 'boolean';
    networks?: 'boolean';
};
```

Method call example:

```typescript
import type { CryptocurrencyListRequest, HttpError } from '@simplepay-ai/api-client';

try {
    const request: CryptocurrencyListRequest = {
        // Request is optional and may be omitted
    };

    const cryptocurrencies = await api.cryptocurrency.list(request);

    console.debug(cryptocurrencies);
} catch (e) {
    if (e instanceof HttpError) {
        const error = e as HttpError;

        console.error(error.code);
    }
}
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
If you require cryptocurrency that is not in list, we will be glad to help you, feel free to [Request Cryptocurrency](mailto:info@simplepay.ai?subject=Cryptocurrency%20Request\&body=I%27m%20interested%20in%20...%20cryptocurrency)
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://dev.simplepay.ai/docs/javascript-sdk/services/cryptocurrency.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
