Skip to main content
Какие валюты и сети поддерживает ваш инстанс — определяется его настройками. Не хардкодьте этот список: читайте его через API. Все три эндпоинта ниже — read-only, требуют подписи и тела не имеют (GET).
Валюта в запросах депозитов и выплат указывается полем assetCode — это поле code из каталога активов. Сеть определяется самим assetCode: USDT_TRC20, USDT_ERC20, USDT_TON и т. д. — это разные активы в разных сетях.
Базовый адрес в примерах — https://wallet.your-exchange.com, идентификатор ключа — pk_live_a1b2c3d4. Схема подписи для GET — Аутентификация (тело пустое, сообщение для подписи = "<timestamp>.").

Активы

GET /v1/public/assets — список активных валют, доступных для депозитов и выплат. Возвращает только публичные поля; внутренние идентификаторы и адреса системных кошельков не отдаются.
TS=$(date +%s)
SIG=$(printf '%s.' "$TS" | openssl dgst -sha256 -hmac "$API_SECRET" -hex | sed 's/^.* //')
curl "https://wallet.your-exchange.com/v1/public/assets" \
  -H "X-Api-Id: pk_live_a1b2c3d4" -H "X-Timestamp: $TS" -H "X-Signature: $SIG"
200 OK
{
  "ok": true,
  "data": [
    {
      "code": "USDT_TRC20",
      "symbol": "USDT",
      "displayName": "Tether USD (TRC-20)",
      "network": "TRON",
      "tokenStandard": "TRC20",
      "decimals": 6,
      "depositEnabled": true,
      "payoutEnabled": true,
      "contractAddress": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",
      "minDeposit": "1",
      "minPayout": "1"
    },
    {
      "code": "TRX",
      "symbol": "TRX",
      "displayName": "TRON",
      "network": "TRON",
      "tokenStandard": null,
      "decimals": 6,
      "depositEnabled": true,
      "payoutEnabled": true,
      "contractAddress": null,
      "minDeposit": "1",
      "minPayout": "1"
    }
  ]
}

Поля актива

code
string
Код актива. Используйте его как assetCode при создании депозита или выплаты (например USDT_TRC20, TRX).
symbol
string
Тикер валюты (например USDT).
displayName
string
Человекочитаемое название (например Tether USD (TRC-20)).
network
string
Код сети актива (например TRON). Сопоставляется с code из списка сетей.
tokenStandard
string | null
Стандарт токена: TRC20, ERC20, BEP20, JETTON и т. п. null — для нативной монеты сети.
decimals
number
Число десятичных знаков актива. Суммы с большим числом знаков после запятой будут отвергнуты с кодом AMOUNT_TOO_MANY_DECIMALS.
depositEnabled
boolean
Доступны ли депозиты в этом активе.
payoutEnabled
boolean
Доступны ли выплаты в этом активе.
contractAddress
string | null
Адрес контракта токена (публичная on-chain информация). null — для нативной монеты.
minDeposit
string
Минимальная сумма депозита (строка). Меньшая сумма даст AMOUNT_BELOW_MINIMUM.
minPayout
string
Минимальная сумма выплаты (строка). Меньшая сумма даст AMOUNT_BELOW_MINIMUM.
Проверяйте depositEnabled / payoutEnabled перед операцией: даже активный актив может быть временно закрыт на одну из сторон.

Сети

GET /v1/public/networks — включённые сети с метаданными. В список попадают только сети, у которых есть хотя бы один активный актив и которые включены в настройках инстанса.
TS=$(date +%s)
SIG=$(printf '%s.' "$TS" | openssl dgst -sha256 -hmac "$API_SECRET" -hex | sed 's/^.* //')
curl "https://wallet.your-exchange.com/v1/public/networks" \
  -H "X-Api-Id: pk_live_a1b2c3d4" -H "X-Timestamp: $TS" -H "X-Signature: $SIG"
200 OK
{
  "ok": true,
  "data": [
    {
      "code": "TON",
      "displayName": "Gram",
      "archetype": "memo_based",
      "nativeSymbol": "GRAM",
      "enabled": true,
      "defaultConfirmations": 1
    },
    {
      "code": "TRON",
      "displayName": "TRON",
      "archetype": "account_based",
      "nativeSymbol": "TRX",
      "enabled": true,
      "defaultConfirmations": 19
    }
  ]
}

Поля сети

code
string
Код сети (например TRON, TON). Совпадает с полем network в каталоге активов.
displayName
string
Человекочитаемое название сети (например TRON, Gram).
archetype
string
Архетип сети: account_based, utxo или memo_based. Определяет модель адресации.
nativeSymbol
string
Тикер нативной монеты сети (например TRX, GRAM). В сети TON нативная монета — GRAM (ребрендинг Toncoin), сам код сети остаётся TON.
enabled
boolean
Включена ли сеть и доступна ли для операций.
defaultConfirmations
number
Число подтверждений по умолчанию, после которых депозит считается финализированным.

Балансы

GET /v1/public/balances — агрегированные доступные средства hot-кошельков по каждому активу. Это то, чем можно оплачивать выплаты.
TS=$(date +%s)
SIG=$(printf '%s.' "$TS" | openssl dgst -sha256 -hmac "$API_SECRET" -hex | sed 's/^.* //')
curl "https://wallet.your-exchange.com/v1/public/balances" \
  -H "X-Api-Id: pk_live_a1b2c3d4" -H "X-Timestamp: $TS" -H "X-Signature: $SIG"
200 OK
{
  "ok": true,
  "data": [
    {
      "assetCode": "USDT_TRC20",
      "symbol": "USDT",
      "network": "TRON",
      "available": "1530.500000",
      "updatedAt": "2026-06-02T20:58:00.000Z"
    },
    {
      "assetCode": "TRX",
      "symbol": "TRX",
      "network": "TRON",
      "available": "8420.100000",
      "updatedAt": "2026-06-02T20:58:00.000Z"
    }
  ]
}

Поля баланса

assetCode
string
Код актива (тот же, что code в каталоге активов).
symbol
string
Тикер валюты (например USDT).
network
string
Код сети актива (например TRON).
available
string
Доступно на hot-кошельках для выплат (строка, формат NUMERIC). Сравнивайте как decimal, не как float.
updatedAt
string | null
Когда баланс последний раз сверялся с сетью (ISO 8601). null, если сверки ещё не было.
Перед созданием выплаты сверьтесь с available для нужного актива — иначе вернётся INSUFFICIENT_HOT_WALLET_BALANCE. Помните, что баланс мог измениться между чтением и выплатой: используйте available как ориентир, а не как гарантию.

Частые вопросы

Поле code из GET /v1/public/assets (например USDT_TRC20). Сеть определяется самим кодом актива — отдельно её передавать не нужно.
USDT существует в разных сетях как разные активы: USDT_TRC20 (TRON), USDT_TON (TON) и т. д. Это разные assetCode с разными адресами и контрактами. Отправляйте средства строго в той сети, что соответствует assetCode.
Каталог кешируется на стороне сервера, ответ отдаётся быстро. Тем не менее не опрашивайте его в цикле без необходимости — кешируйте у себя и учитывайте общий лимит запросов (см. Лимиты).
Число знаков после запятой не должно превышать decimals актива (например 6 для USDT_TRC20). Иначе вернётся AMOUNT_TOO_MANY_DECIMALS. См. Ошибки.