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-профилем.
- Подключите ваш Web3-кошелек (MetaMask или WalletConnect) в основном интерфейсе DEX. Ваш кошелек выступает в роли базового API Wallet.
- Перейдите в раздел "Управление API" (API Management). Используя криптографическую подпись через
Web3.jsилиEthers.js(обрабатывается под капотом UI), подтвердите владение адресом. - Нажмите "Создать API". Система сгенерирует API Key и Secret Key.
- Важно: 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). |
Руководства и примеры кода
Чтобы помочь вам быстрее начать работу, мы подготовили серию подробных руководств и статей:
- Создание простого торгового бота на Python — Пошаговое руководство с примерами кода, которое показывает, как подключиться к АРІ, получать рыночные данные и размещать ордера.
- Потоковые данные с WebSocket и Node.js — Узнайте, как получать данные о сделках и стакане ордеров в реальном времени.
- Автоматическая ребалансировка портфеля — Туториал по созданию скрипта, который автоматически ребалансирует активы согласно заданной стратегии.
- Примеры интеграции и создание клиентов API — Готовые примеры кода на разных языках как основа для ваших собственных клиентов.
- REST API vs. WebSocket — Какую технологию выбрать для вашей торговой стратегии?
- Всё об аутентификации HMAC-SHA256 — Подробное объяснение, как и зачем генерировать подпись для защиты ваших запросов.
- Гайд по лимитам запросов (Rate Limits) — Как писать эффективный код, чтобы не быть заблокированным.
Первые шаги: Подключение и примеры
Проверка соединения (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.