DEX · dYdX

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

Техническое руководство по работе с dYdX v4. Узнайте, как использовать Indexer API для получения рыночных данных, подписывать транзакции (ордера) через Cosmos SDK и автоматизировать HFT-стратегии на децентрализованном движке валидаторов.

Обзор архитектуры API: Cosmos App-Chain & Indexer

В отличие от версии v3, dYdX Chain (v4) является полностью независимым блокчейном уровня 1, построенным на Cosmos SDK. Здесь нет централизованного сервера сведения ордеров: книга ордеров хранится в оперативной памяти сети валидаторов. Это означает кардинальную смену парадигмы для разработчиков.

→ Подробнее об архитектуре dYdX Chain

Два слоя взаимодействия:

  • Indexer API (Чтение): Специализированные сервера, которые индексируют блокчейн и предоставляют REST и WebSocket API (свечи, стаканы, история сделок) для быстрой работы без нагрузки на RPC ноды.
  • RPC/gRPC (Запись): Ордера (размещение, отмена) — это транзакции в блокчейне. Вы должны подписать их локально и отправить валидаторам (без газа).

Безопасность: Привычные "API ключи" ушли в прошлое. На dYdX v4 вы оперируете приватным ключом Cosmos. Компрометация ключа вашего субаккаунта позволяет злоумышленнику управлять вашими средствами.

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

  • Разделение субаккаунтов: Создайте отдельный Subaccount для каждого бота.
  • Безопасное хранение: Храните мнемоническую фразу (Secret Mnemonic) только в .env или AWS Secrets Manager. Никогда не хардкодьте ключи в коде!

→ Отчёты по безопасности и аудиты dYdX

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

Благодаря нулевым комиссиям за газ на выставление и отмену ордеров, dYdX Chain идеально подходит для сложных алгоритмических стратегий:

  • Арбитраж ставки финансирования (Funding Rate Arbitrage): Дельта-нейтральные стратегии между dYdX и CEX (например, Binance) с использованием котировок USD.
  • Высокочастотный маркетмейкинг (HFT): In-memory книга ордеров валидаторов позволяет выставлять и отменять десятки заявок в секунду.
  • Охота за ликвидациями: Анализ Indexer Price для перехвата рыночных дисбалансов при принудительном закрытии позиций.

→ Ончейн-статистика и метрики dYdX

Подключение: Деривация аккаунта и локальные ключи

На dYdX v4 процесс инициализации разработчика сильно отличается от классических бирж:

  1. Деривация субаккаунта: Вы подключаете свой Ethereum-кошелек к dYdX, который посредством криптографической подписи генерирует dydx... адрес (Cosmos-формат) и мнемоническую фразу субаккаунта.
  2. Экспорт ключей: Из интерфейса биржи (раздел "Export Secret Phrase" для API) вы получаете секретную фразу.
  3. Инициализация SDK: В вашем коде вы используете официальные библиотеки (@dydxprotocol/v4-client-js или v4-web-python-client), передаете им мнемонику, и SDK берет на себя всю сложную работу по формированию Cosmos-транзакций (MsgPlaceOrder).

Важно: Ваш бот должен формировать и подписывать каждую заявку (транзакцию) локально перед отправкой на ноду валидатора.

Архитектура API и Эндпоинты

dYdX предоставляет публичный кластер Индексаторов для получения данных:

Справочник сред (Environments)

  • Mainnet Indexer REST: https://indexer.dydx.trade
  • Mainnet Indexer WebSocket: wss://indexer.dydx.trade/v4/ws
  • Testnet: https://indexer.v4testnet.dydx.exchangeиспользуйте для тестирования стратегий.
  • Официальные SDK: Рекомендуется использовать официальные клиенты для TypeScript и Python, так как они автоматически парсят Protobuf-сообщения и обрабатывают RPC запросы.

Обработка ошибок (Cosmos RPC Errors)

Поскольку ордера отправляются как транзакции в блокчейн, ошибки чаще всего связаны со стейтом сети или форматом транзакции:

Тип ошибки / Сообщение Причина Решение
Account sequence mismatch Асинхронная отправка нескольких транзакций с одинаковым nonce (sequence). Управляйте sequence локально в вашем коде. Ожидайте подтверждения в мемпуле или правильно инкрементируйте sequence при параллельной отправке ордеров.
Insufficient margin Не хватает обеспечения (USDC) для позиции с заданным плечом. Скорректируйте размер ордера или проверьте свободный баланс субаккаунта через Indexer API.
Invalid Signature Ордер неверно подписан или изменен в пути. Убедитесь, что используете актуальную версию официального SDK, которая корректно формирует Protobuf байты перед подписью.

Руководства и туториалы

Для быстрого старта с dYdX Chain мы рекомендуем использовать официальные SDK:

  • Торговый бот на Python (v4-client) — Инициализация кошелька, подпись MsgPlaceOrder и отправка через gRPC.
  • Потоковые данные WebSocket (TypeScript) — Получение Orderbook L2 и агрегированных сделок через Indexer.
  • Примеры интеграции — Сниппеты кода для управления кросс-маржой субаккаунта.

Первые шаги: Чтение данных через Indexer

Получение списка рынков (REST)

Для публичных данных аутентификация не требуется. Получите активные торговые пары (например, `BTC-USD`):

curl -X GET "https://indexer.dydx.trade/v4/markets"

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

Для получения рыночных данных в реальном времени:

URL: `wss://indexer.dydx.trade/v4/ws`

{
  "type": "subscribe",
  "channel": "v4_markets"
}

Node.js: Базовый запрос к Indexer API

Пример использования axios для получения актуального стакана ордеров по паре BTC-USD:

const axios = require('axios');

async function getOrderbook() {
  try {
    const response = await axios.get('https://indexer.dydx.trade/v4/orderbooks/perpetualMarket/BTC-USD');
    console.log("Топ заявки Ask:", response.data.asks.slice(0, 5));
  } catch (error) {
    console.error("Ошибка API:", error.response ? error.response.data : error.message);
  }
}

getOrderbook();

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

Публичные данные рынка

  • GET /v4/markets: Статус рынков, индексы цен, шаг цены (tick size) и объем лота.
  • GET /v4/orderbooks/perpetualMarket/{ticker}: Глубина книги ордеров.
  • GET /v4/candles/perpetualMarket/{ticker}: Исторические данные свечей.

Данные Аккаунта (Требуется адрес субаккаунта)

  • GET /v4/addresses/{address}/subaccounts/{subaccountNumber}: Получение баланса, свободной маржи и открытых позиций конкретного субаккаунта.

Напоминание: Для отправки ордеров и управления счетом (Запись) необходимо использовать SDK для трансляции Cosmos транзакций (Tx) к валидаторам, а не Indexer API.

Сторонние интеграции: Hummingbot

Маркетмейкинг через Hummingbot

Для алготрейдеров, желающих запустить маркетмейкинг без написания низкоуровневого кода, Hummingbot имеет полностью рабочий коннектор для dYdX v4 (dYdX Chain). Вы можете настроить бота для Pure Market Making или Cross-Exchange Arbitrage. Коннектор Hummingbot уже "под капотом" работает с Cosmos-транзакциями, вам нужно лишь скормить ему вашу мнемоническую фразу (Secret Mnemonic) от субаккаунта через защищенный интерфейс.

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

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

Основной URL для публичных запросов (Indexer API) в Mainnet: https://indexer.dydx.trade. Для WebSocket: wss://indexer.dydx.trade/v4/ws. Testnet: https://indexer.v4testnet.dydx.exchange.

Почему в dYdX v4 нет привычных API ключей?

В отличие от CEX и dYdX v3, dYdX v4 — это суверенный блокчейн (Cosmos App-Chain). Выставление ордера — это полноценная блокчейн-транзакция. Вы подписываете ее локально приватным ключом вашего субаккаунта и отправляете нодам валидаторов (RPC), а не на централизованный HTTP-сервер.

Как обеспечить безопасность при торговле через API?

Ключом к вашим средствам является мнемоническая фраза субаккаунта (Secret Phrase). Сохраняйте ее в менеджерах секретов операционной системы (.env) и никогда не публикуйте в GitHub. Рекомендуется создавать отдельные субаккаунты с ограниченным капиталом для каждого торгующего бота.

---