AsterDEX API: Документация, SDK и Интеграции

Техническое руководство по работе с REST и WebSocket API AsterDEX. Настройте программный доступ к книге ордеров, управляйте позициями (Cross/Isolated Margin) и автоматизируйте высокочастотные стратегии.

Обзор архитектуры API

AsterDEX API предоставляет прямой шлюз к механизму мэтчинга децентрализованной биржи, обходя стандартный Web3-интерфейс. Это позволяет достичь задержек (latency), сопоставимых с централизованными биржами (CEX), при сохранении некастодиального хранения активов.

Безопасность API: Ваш главный приоритет

Ваши ключи API предоставляют программный доступ к вашему торговому счету. Относитесь к ним с тем же уровнем безопасности, что и к вашим приватным ключам. Компрометация ключей API может привести к значительным финансовым потерям.

Ключевые практики безопасности:

  • Белый список IP: Всегда привязывайте ваш ключ API к статическому IP-адресу, с которого вы будете отправлять запросы.
  • Ограничение разрешений: Предоставляйте ключу только минимально необходимые права. Если ключ предназначен только для чтения данных, не давайте ему права на торговлю.
  • Безопасное хранение: Никогда не встраивайте ключи в код. Используйте переменные окружения или специализированные сервисы для управления секретами.
  • Регулярный аудит: Периодически проверяйте активные ключи API, их разрешения и привязанные IP-адреса. Удаляйте ключи, которые больше не используются.

Применение API: ИИ-трейдинг и алгоритмические стратегии

API AsterDEX — это фундамент для алгоритмической торговли деривативами. Вместо ручного трейдинга, квантовые фонды и ИИ-модели используют наш API для:

  • Арбитража ставки финансирования (Funding Rate Arbitrage): Мониторинг эндпоинта Premium Index для извлечения прибыли из разницы ставок между платформами.
  • Высокочастотного маркетмейкинга (HFT): Поддержание ликвидности в стакане ордеров (Order Book) с использованием WebSockets для минимизации задержек.
  • Охоты за ликвидациями (Liquidation Hunting): Анализ Mark Price (Цены маркировки) и Index Price (Индексной цены) для автоматического входа в позиции при ликвидациях (Liquidations) других участников.

Генерация ключей API и привязка API Wallet

На AsterDEX классический REST API работает в связке с вашим Web3-профилем.

  1. Подключите ваш Web3-кошелек (MetaMask или WalletConnect) в основном интерфейсе DEX. Ваш кошелек выступает в роли базового API Wallet.
  2. Перейдите в раздел "Управление API" (API Management). Используя криптографическую подпись через Web3.js или Ethers.js (обрабатывается под капотом UI), подтвердите владение адресом.
  3. Нажмите "Создать API". Система сгенерирует API Key и Secret Key.
  4. Важно: Secret Key отображается только один раз. Скопируйте его. В отличие от взаимодействия со Smart Contracts ABI, где вы подписываете каждую транзакцию кошельком, для высокочастотной торговли через API используется подпись HMAC-SHA256 с помощью Secret Key.

Архитектура API

API AsterDEX предлагает два основных интерфейса для взаимодействия, о которых вы можете прочитать в нашей статье "REST API vs. WebSocket":

  • REST API (Pull-модель): Интерфейс "запрос-ответ", идеально подходящий для инициируемых вами действий, таких как размещение ордера, проверка баланса или отмена заявки.
  • WebSocket API (Push-модель): Устанавливает постоянное соединение, позволяя серверу отправлять вам данные в реальном времени. Это необходимо для отслеживания книги ордеров, сделок и других рыночных событий без задержек.

Краткий справочник сред и библиотек

  • Mainnet (Основная сеть): https://fapi.asterdex.com | WS: wss://fstream.asterdex.com/ws
  • Testnet (Тестовая сеть): https://testnet.asterdex.comиспользуйте для отладки ботов без риска потери средств.
  • SDK & Утилиты: Для быстрой интеграции в Node.js используйте официальные и комьюнити пакеты NPM и Yarn. Например: yarn add asterdex-api.
  • Аутентификация: HMAC SHA256

Обработка ошибок (Error Codes) и Дебаггинг

При автоматизации торговых стратегий важно правильно обрабатывать ответы сервера. Ниже приведены самые частые коды ошибок AsterDEX API и способы их решения:

Код Сообщение (Message) Решение
-1021 Timestamp for this request is outside of the recvWindow. Рассинхронизация времени. Синхронизируйте время вашего сервера с системным временем AsterDEX (эндпоинт /fapi/v1/time) или увеличьте параметр recvWindow.
-2015 Invalid API-key, IP, or permissions for action. Проверьте белый список IP-адресов. Убедитесь, что для ключа включено разрешение "Enable Trading".
-2019 Margin is insufficient. Недостаточно маржи для открытия позиции. Проверьте текущий баланс или уменьшите размер ордера с учетом выставленного плеча (Leverage).

Руководства и примеры кода

Чтобы помочь вам быстрее начать работу, мы подготовили серию подробных руководств и статей:


Первые шаги: Подключение и примеры

Проверка соединения (Ping)

Чтобы убедиться, что вы можете подключиться к API, используйте эндпоинт `/fapi/v1/ping`, который не требует аутентификации.

curl -X GET "https://fapi.asterdex.com/fapi/v1/ping"

Успешный ответ вернет пустой JSON-объект: `{}`.

Подписка на данные через WebSocket

Для получения данных в реальном времени, например, агрегированных сделок по паре BTC/USDT, подключитесь к WebSocket и отправьте `SUBSCRIBE` сообщение.

URL: `wss://fstream.asterdex.com/ws`

Пример подписки:

{
  "method": "SUBSCRIBE",
  "params": [
    "btcusdt@aggTrade"
  ],
  "id": 1
}

Быстрый старт через NPM-пакет (Node.js)

Вместо ручного формирования подписей HMAC-SHA256, вы можете использовать готовый пакет asterdex-api. Пример получения баланса фьючерсного аккаунта:

const AsterDEX = require('asterdex-api');

// Инициализация клиента
const client = new AsterDEX({
  apiKey: 'ВАШ_API_KEY',
  apiSecret: 'ВАШ_SECRET_KEY',
  baseURL: 'https://fapi.asterdex.com' // Используйте testnet URL для отладки
});

// Асинхронный запрос баланса
async function getBalance() {
  try {
    const balance = await client.futuresAccountBalance();
    console.log("Доступный баланс USDT:", balance.find(b => b.asset === 'USDT').availableBalance);
  } catch (error) {
    console.error("Ошибка API:", error.message);
  }
}

getBalance();

Обзор ключевых эндпоинтов

Информация о бирже (`/fapi/v1/exchangeinfo`)

Этот эндпоинт — ваша точка входа. Он предоставляет всю необходимую информацию о торговых правилах, парах, фильтрах цен и размеров лотов. Крайне важно запрашивать эти данные перед началом торговли, чтобы понимать ограничения, такие как `tickSize` (минимальное изменение цены) и `stepSize` (минимальный объем ордера).

Данные о рынке

  • /fapi/v1/depth: Глубина книги ордеров. Позволяет увидеть текущие заявки на покупку и продажу.
  • /fapi/v1/klines: Исторические данные (свечи) для анализа ценовых движений.
  • /fapi/v1/historicalTrades: Лента исторических сделок.

Управление маржой и фьючерсными позициями

  • POST /fapi/v1/marginType: Изменение типа маржи для символа. Выбор между Cross Margin (Кросс-маржа) и Isolated Margin (Изолированная маржа).
  • POST /fapi/v1/leverage: Установка начального кредитного плеча (Leverage) для торговой пары.
  • GET /fapi/v1/premiumIndex: Получение текущей Цены маркировки (Mark Price), Индексной цены (Index Price) и Ставки финансирования (Funding Rate).

Управление счетом и ордерами

  • /fapi/v2/balance: Получить баланс вашего счета.
  • /fapi/v2/positionRisk: Информация о ваших открытых позициях.
  • POST /fapi/v1/order: Размещение ордера. Поддерживаются продвинутые типы: LIMIT, MARKET, Take Profit Market, Trailing Stop. Обязательно указывайте параметр Time in Force (GTC, IOC, FOK) для лимитных заявок.
  • DELETE /fapi/v1/order: Отмена открытого ордера.

Для получения полного списка эндпоинтов и их параметров обратитесь к официальной документации AsterDex API на GitHub.

Сторонние интеграции: Терминалы и On-Chain Аналитика

Подключение к торговым терминалам (MetaScalp)

Если вы занимаетесь ручным скальпингом, вы можете подключить AsterDEX к профессиональным приводам, таким как MetaScalp или CScalp. В настройках подключения выберите «AsterDEX», укажите тип сети (Mainnet) и вставьте сгенерированные ранее API Key и Secret Key. Терминал будет автоматически транслировать ваши заявки через API с минимальным пингом.

On-Chain данные через Bitquery (GraphQL)

Для глубокой квантовой аналитики стандартного REST API может быть недостаточно. AsterDEX интегрирован с протоколами индексации блокчейна, такими как Bitquery. Используя запросы GraphQL, вы можете получать сырые исторические данные децентрализованной биржи прямо из смарт-контрактов: объемы пулов ликвидности, цепочки маршрутизации токенов и глобальные события ликвидаций в сети.

Выбор источника данных: REST API vs Bitquery (GraphQL)

Для создания полноценной аналитической системы важно понимать, откуда брать данные. AsterDEX предлагает два независимых слоя данных:

  • AsterDEX REST & WebSocket (Off-chain Engine):
    Идеально для: Торговых ботов, HFT, скальпинга (MetaScalp), получения актуального стакана ордеров (Order Book L2) с задержкой < 10 мс.
    Ограничения: Хранит только агрегированную историю торгов.
  • Bitquery GraphQL API (On-chain Data):
    Идеально для: Глубокого бэктестинга стратегий, аудита смарт-контрактов AsterDEX, отслеживания реальных транзакций китов в блокчейне (TX Hashes) и маршрутизации ликвидности.
    Ограничения: Задержка на уровне времени создания блока (Block Time), не подходит для мгновенного выставления ордеров.

Часто задаваемые вопросы (FAQ) по AsterDEX API

Какой базовый URL у REST API AsterDEX?

Базовый URL для REST запросов (Mainnet): https://fapi.asterdex.com. Для получения потоковых данных через WebSocket используется wss://fstream.asterdex.com/ws. Для тестовой среды применяйте https://testnet.asterdex.com.

Какие лимиты (Rate Limits) у API AsterDEX?

Базовое ограничение скорости (Rate Limit) составляет 1200 запросов в минуту с одного IP-адреса. Превышение лимита приведет к временной блокировке по IP (HTTP 429 Too Many Requests).

Как обеспечить безопасность API ключей?

Используйте белый список IP-адресов, привязывайте ключи к вашему Web3 API Wallet, ограничивайте разрешения (например, "только чтение" для on-chain аналитики) и никогда не храните Secret Key в открытом коде на GitHub.