Перейти к содержимому

    Нажмите /, чтобы искать, и [ или ], чтобы перейти к предыдущей или следующей странице.

    Как это устроено

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

    Протокол — это небольшой набор контрактов в HyperEVM, которые через прекомпилы читают цены из HyperCore, слоя Hyperliquid, и переводят в нём USDC. На этой странице показано, какие есть контракты и как они связаны между собой.

    Архитектура в блокчейнеПодписанные интенты идут от релейера через BatchExecutor в Exchange, который читает цены Hyperliquid из прекомпилов HyperCore и переводит USDC через CoreWriter. Рядом с ним — Staking, Tokenomics и токен.Вне блокчейнаваш кошелёк или сеансовый ключподписываетрелейерHyperEVMотправляет пакетыBatchExecutorExchangeбиблиотеки торговли, очереди, средств, администрированияSessionKeyManagerлинзы (только чтение)StakingTokenomicsтокенDepositProxyFactoryHyperCoreчитает ценыпереводит USDCBBOмаркировка и оракулCoreWriterспотовый USDC
    Архитектура в блокчейне. Подписанные интенты идут от релейера через BatchExecutor в Exchange, который читает цены Hyperliquid из прекомпилов HyperCore и переводит USDC через CoreWriter. Рядом с ним — Staking, Tokenomics и токен.

    Контракты (HyperEVM)

    • Exchange: торговый контракт. Он ведёт все балансы, открывает и закрывает позиции, рассчитывает результаты, ведёт очередь выплат и хранит LP и счета комиссий. Тонкая точка входа делегирует вызовы четырём библиотекам (торговля, очередь, средства, администрирование). Открытия и закрытия поступают только через BatchExecutor; выводы и служебные вызовы может отправлять кто угодно.
    • BatchExecutor: единственный вход для релейера. Он принимает пакеты только от настроенных ключей релейера и передаёт каждый подписанный вызов только в фиксированный список функций.
    • SessionKeyManager: регистрирует сеансовые ключи, проверяет каждую подпись и каждый nonce для Exchange и обрабатывает отзыв. Регистрация приходит через релейер; отзыв можно сделать и прямым вызовом из кошелька.
    • Token, Staking, Tokenomics: токен BACK (переводы на старте: выключено), контракт стейкинга с аккумулятором наград и контракт, который рассчитывает и начисляет BACK за убытки и ведёт учётный LP.
    • BuilderRegistry: одобренные билдеры и единая ставка комиссии билдера с потолком 15%. Не обновляется: заменить его — значит развернуть новый контракт и переключить на него SessionKeyManager.
    • DepositProxyFactory и DepositProxy: вычисляют детерминированный адрес для пополнения каждого аккаунта и разворачивают за ним небольшой контракт, который может отправлять USDC в HyperCore только в Exchange. Ни тот, ни другой не обновляются: адрес для пополнения никогда не должен меняться.
    • Линзы и PriceOracle: представления только для чтения поверх Exchange и HyperCore и вспомогательный контракт цен — для приложений и сервисов. Exchange читает прекомпилы напрямую, а не через них.

    Адреса — на странице Адреса контрактов.

    Прекомпилы (HyperCore)

    • BBO 0x000000000000000000000000000000000000080e: лучшая цена покупки и лучшая цена продажи; их середина — цена исполнения.
    • Mark 0x0000000000000000000000000000000000000806: маркировочная цена Hyperliquid; её читают неактивные ценовые защиты, и она служит запасной ценой при выводе рынка из обращения.
    • Oracle 0x0000000000000000000000000000000000000807: цена оракула Hyperliquid, применяется так же, как маркировочная.
    • CoreWriter 0x3333333333333333333333333333333333333333: системный контракт, который отправляет действия в HyperCore. Прокси для пополнения используют его, чтобы отправлять USDC на счёт Exchange в HyperCore, а Exchange — чтобы выплачивать выводы на ваш счёт в HyperCore.

    Прекомпилы балансов позволяют Exchange проверить, что пополнение действительно пришло, прежде чем зачислить его (Пополнения: прокси CREATE2).

    Сделка от начала до конца

    Вы подписываете интент сеансовым ключом, и приложение отправляет его релейеру, который проверяет его и ставит в очередь. Релейер собирает интенты из очереди в пакет и отправляет его в BatchExecutor, который вызывает Exchange по одному разу на интент. Exchange проверяет подпись через SessionKeyManager, читает BBO для цены исполнения, открывает позицию или рассчитывает закрытие с LP, обновляет ваш баланс и при убытке поручает Tokenomics начислить вам BACK. Интенты многих аккаунтов делят одну транзакцию, но каждый рассчитывается отдельно: релейер помечает каждый вызов как допускающий неудачу, поэтому сбой одного интента не останавливает остальные.

    Фронтенды

    Все открытия и закрытия отправляет наш релейер. Другой фронтенд может создавать те же подписи и отправлять их через API релейера (API интентов), но не может отправлять открытия и закрытия в контракты напрямую.

    Внешние сервисы

    Сервис Задача
    Приём релейера Принимает подписанные интенты, проверяет их и резервирует балансы.
    Движок релейера Планирует интенты из очереди и отправляет их пакетами.
    Индексатор Следит за блокчейном блок за блоком, в каждом блоке проверяет инварианты учёта и транслирует обновления аккаунтов.
    API чтения и поток Отдают приложению состояние рынков, историю и поток аккаунта в реальном времени.
    Киперы Ликвидируют, проводят сборы по очереди, распределяют награды за стейкинг, двигают лимиты открытого интереса, переключают кривую выплат по расписанию, воспроизводят отложенные начисления.
    Свипер и воркер переводов Переводят пополнения в Exchange и пересылают выводы в другие сети.

    Ни один из этих сервисов не может подписывать за вас или перемещать ваши средства без вашей подписи. Если они остановятся, остановится и торговля, но свободный баланс по-прежнему можно вывести из кошелька.

    Управление

    Владелец каждого обновляемого контракта — таймлок: обновление или изменение параметров планирует мультисиг управления, и выполнить его можно только через 2 дня. Второй таймлок, с задержкой 7 дней, определяет, у кого роли первого. Мультисиг-хранитель может действовать сразу в экстренной ситуации — в узких пределах, перечисленных в разделе Риски.

    Обновлено: