Hyperliquid Academy Независимый · Неофициальный

API Hyperliquid: что он умеет и как устроен доступ

Проверено по источникам: Hyperliquid docs: Nonces and API wallets и Hyperliquid docs: Rate limits and user limits · автор: Hyperliquid Academy

Два эндпоинта, две очень разные вещи

info публичный. Цены, стаканы, ставки фандинга, метаданные рынков, позиции и исполнения любого адреса. Ни ключа, ни учётной записи, ни подписи — те же данные, которые читает этот сайт, чтобы держать свои цифры живыми.

exchange — там, где происходят действия: постановка и отмена ордеров, переводы, изменение плеча. Каждый запрос подписан.

Это разделение стоит усвоить, потому что оно объясняет, почему у вопроса «а есть ли ключ API?» неудовлетворительный ответ. Ключа, который генерируют на странице настроек, нет. Есть подпись, а подписывает либо ваш кошелёк, либо агент, которого вы уполномочили.

Модель кошелька-агента

Это то, что отличается от любой централизованной биржи, и это действительно более удачная конструкция.

Вы одобряете API-кошелёк — агента, — который подписывает от имени вашего мастер-счёта или его субсчетов. Этот агент может ставить и отменять ордера. Выводить средства он не может.

Поэтому утёкший ключ бота — это плохой день, а не катастрофа. Кто-то может заторговать ваш счёт в убыток. Отправить ваш баланс куда-либо он не может, потому что для вывода средств с биржи нужна подпись мастер-кошелька.

Никогда не переиспользуйте адрес снятого с регистрации агента

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

Создавайте свежего агента каждый раз. Переиспользование адреса, который вы уже вывели из работы, — единственная ошибка в работе с этим API, у которой последствия по безопасности, а не по удобству.

Ещё одно практическое замечание, на котором спотыкаются в первый же день: чтобы запросить счёт, передавайте реальный адрес мастер-счёта или субсчёта, а не адрес агента. Запрос по адресу агента возвращает пустые данные и выглядит как баг.

Лимиты

Действуют две системы одновременно, и они ограничивают разное.

На IP

ЛимитЗначение
Весовой бюджет REST1200 в минуту
Соединений WebSocket10
Подписок WebSocket1000
Сообщений WebSocket2000 в минуту

Вес не равен единице на запрос. Большинство запросов info стоят 20, горстка частых — 2, а запросы exchange стоят 1 плюс доля от длины пакета. То есть бюджета хватает намного дальше на постановку ордеров, чем на опрос данных, — и это осознанный толчок в сторону WebSocket.

На адрес

ЛимитЗначение
Начальный буфер запросов10000 запросов
Далее1 запрос на каждый USDC накопленного объёма
Открытых ордеров1000 по умолчанию
ПлюсЕщё один на каждые $5M объёма
Потолок5000

Для чего на самом деле нужен лимит на адрес

Он привязывает ваш запас запросов к вашей торговле. Адрес, который ничего не наторговал, получает стартовый запас и не более; адрес, который торгует, получает место пропорционально этому.

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

REST или WebSocket

WebSocket для всего непрерывного. Средние цены, обновления стакана, ваши собственные исполнения. Опрашивать это через REST — значит жечь вес ради данных, которые прислали бы вам бесплатно.

REST для действий и разовых запросов. Постановка ордера, отмена, смена плеча, единичный исторический снимок.

Самая частая ошибка новичка в первом боте — опрос l2Book в цикле. Какое-то время это работает, потом приходит ограничитель, и решением является подписка, а не более длинная пауза.

Во что это обходится

Использование бесплатно, и за торговлю через API ничего сверху не берут. Ни надбавки за API, ни отдельного уровня комиссий: ордер, поставленный ботом, платит ровно столько же, сколько ордер, поставленный руками, — 0.045% тейкер или 0.015% мейкер на входном уровне.

Для всего, что работает часто, это важно, потому что разрыв между мейкером и тейкером у автоматической стратегии накапливается гораздо быстрее, чем при ручной торговле. Где на самом деле экономия.

Прежде чем писать код

Сначала прочитайте про типы ордеров. Post-only, reduce-only, IOC и триггерные типы доступны через API, и правильный флаг предотвращает целые классы багов. Полный список.

Тестируйте маленьким размером на боевой площадке. Тестовая сеть говорит, что ваш код компилируется. Она не говорит, как тонкий стакан поведёт себя против вашей логики.

Решите, что произойдёт, когда ваш процесс умрёт. Бот, остановившийся со стоящими в стакане ордерами, оставляет их работать. Осознанно решите, нужно ли вам это, и подумайте, не требуется ли вашей стратегии собственная дисциплина отмены при разрыве связи.

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

Куда дальше

Начало работы с Python SDK — кратчайший путь от нуля до поставленного ордера — и о чём подумать до запуска бота вообще.

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

Нужен ли мне ключ API?

Не в привычном смысле. Ключа, выдаваемого в панели управления, здесь нет. Для чтения данных не нужно ничего, а для торговли нужна подпись вашего кошелька или одобренного вами API-кошелька.

Может ли API-кошелёк вывести мои средства?

Нет. Он подписывает ордера и другие торговые действия от имени счёта. Для вывода нужна подпись самого мастер-кошелька, и именно это делает работающего бота терпимым риском.

Каковы лимиты запросов?

REST-запросы делят весовой бюджет в 1200 в минуту на IP, с разным весом у разных эндпоинтов. Отдельно каждому адресу даётся один запрос на каждый USDC накопленного объёма, поверх начального буфера в 10 000.

Сколько открытых ордеров можно держать?

По умолчанию 1000, плюс ещё один на каждые 5 миллионов USDC объёма, с потолком в 5000 суммарно.

Можно ли повторно использовать адрес API-кошелька?

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

REST или WebSocket?

WebSocket для всего, что нужно постоянно, — цены, исполнения, обновления стакана, — потому что опрос сжигает ваш весовой бюджет ради данных, которые присылают бесплатно. REST для разовых действий и для постановки ордеров.

Источники

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

Что дальше