Контракты
Ниже приведены текущие адреса контрактов Hypercall Mainnet Alpha. На старте функциональность намеренно ограничена и будет расширяться по мере развития площадки.
Ончейн-компоненты Hypercall развёрнуты в HyperEVM (chain ID 999). Каждый пользователь получает собственный контракт Account. Exchange хранит USDC площадки и опционы на кастодиальном хранении и исполняет подписанные директивы в отношении контрактов Account. Factory создаёт контракты Account, а Option Registry развёртывает опционные токены и определяет, какие из них поддерживаются.
Функции контрактов
Exchange
Обновляемый прокси-контракт. Версия 0.6.1 в основной сети.
- Хранит внесённые USDC площадки на HyperCore (
depositUsdcFor,depositPmLiquidityFor). - При депозите сжигает опционные ERC20-токены и генерирует событие
Deposit, по которому движок зачисляет позицию (depositOption). - Регистрирует контракты Account, созданные через Factory, и отслеживает менеджера каждого из них (
getAccounts,getAccount,managers). - Исполняет подписанные директивы.
executeUserDirectiveпередаёт в Account директиву, подписанную менеджером или API-кошельком.executeRsmDirectiveисполняет системную директиву с подписью RSM (зачисления, выводы, состояние ликвидации). Обе функции может вызывать только секвенсор Hypercall: пользователь подписывает, Hypercall отправляет. - Отслеживает использованные nonce для каждого подписанта (
isNonceUsed).
Account
Отдельный контракт для каждого пользователя, развёрнутый как BeaconProxy. Версия 0.2.4 в основной сети.
- Владеет балансами и позициями пользователя на HyperCore. Перпы и спот учитываются в реестре HyperCore, принадлежащем Account.
- Имеет одного менеджера (EOA, создавший контракт) и произвольное число именованных API-кошельков.
- Проверяет подписи директив. API-кошельки могут подписывать ордера и их отмену, всё остальное требует подписи менеджера. См. Подпись EIP-712.
- Прямые вызовы, доступные только менеджеру:
transferTo(recipient, token, amount)выводит токены HyperEVM из Account, аapproveZeroFeeBuilder(builder)одобряет билдера Hyperliquid с максимальной комиссией 0%. Ордера на перпы в Hypercall передаются с билдер-кодом Hypercall, поэтому такое одобрение нужно дать один раз перед первым ордером на перп. depositSpotпереводит HYPE или поддерживаемый спотовый токен из HyperEVM в Account на HyperCore.
Factory
Создаёт контракты Account через createAccount(uint96 salt). Адрес детерминирован для пары менеджер и salt: predictAccount(manager, salt) возвращает его ещё до создания. См. Онбординг.
Router
Вспомогательный контракт для пополнения. deposit(account, token, amount, isPerp) направляет USDC на HyperCore через CoreDepositWallet от Circle, спотовые токены через Account, а опционные токены через Exchange. depositHype(account) переводит нативный HYPE.
Option Registry
Развёртывает опционные ERC20-токены и служит источником истины в вопросе, является ли токен поддерживаемым опционом (isSupportedOption).
Типы директив
| Директива | Подписант | Описание |
|---|---|---|
hl_limit_order | API-кошелёк | Лимитный ордер Hyperliquid |
hl_cancel_by_oid | API-кошелёк | Отмена по ID ордера Hyperliquid |
hl_cancel_by_cloid | API-кошелёк | Отмена по клиентскому ID ордера |
hc_update_api_wallet | Менеджер | Добавление, замена или удаление именованного API-кошелька в Account |
hl_add_api_wallet | Менеджер | Одобрение API-кошелька Hyperliquid для Account на HyperCore |
hl_send_asset | Менеджер | Отправка активов из Account на HyperCore |
hl_set_abstraction | Менеджер | Установка режима аккаунта HyperCore для Account (только unified) |
Директивы RSM (зачисления, выводы, запуск и остановка ликвидации, восстановительные ордера только на сокращение позиции) подписывает подписант RSM, а отправляет секвенсор. Пользователи их никогда не подписывают. См. Директивы RSM.
Ликвидация
Ликвидация выполняется в движке Hypercall. См. Ликвидация. В Exchange предусмотрены хуки, позволяющие ончейн-контракту аукциона передать менеджерские права на Account победителю торгов, однако в основной сети аукционист не настроен.
Доверие и права доступа
Этот раздел описывает, кто и что может делать в блокчейне. Краткая версия: Модель доверия.
Отправка
Только секвенсор Hypercall имеет SEQUENCER_ROLE в Exchange, поэтому только он вызывает executeUserDirective и executeRsmDirective. Вы подписываете, Hypercall отправляет. Секвенсор не может подделать пользовательскую директиву: Account сам восстанавливает подписанта и принимает только своего менеджера или активный API-кошелёк.
Директивы RSM
Когда состояние движка требует действия в блокчейне, подписант RSM подписывает директиву, а секвенсор её отправляет. Exchange отклоняет любую директиву RSM, не подписанную зарегистрированным подписантом RSM (Exchange.rsmSigner). Текущий подписант RSM находится под контролем оператора; в дорожной карте будет опубликовано, как эта роль будет децентрализована или иным образом потребует меньше доверия.
Директивы, которые Exchange исполняет сам:
- Отправка USDC или спотовых токенов с баланса Exchange на HyperCore, включая стандартные выводы USDC
- Выпуск опционных ERC20 на адрес при выводе опционов
- Запуск и остановка ликвидации Account
Директивы, которые Account принимает от RSM, с ограничениями, заданными контрактом Account:
- IOC-ордера только на сокращение позиции или околорыночные IOC-продажи спота за USDC на балансе Account в Hyperliquid
- Отправка активов с Account на HyperCore, только в Exchange (например, для покрытия отрицательного баланса)
- Отмена ордеров
Директивы RSM исполняются и тогда, когда Account находится в ликвидации. Расчёт опционов на экспирации не является директивой RSM: он применяется к денежному балансу в состоянии движка. Адрес подписанта RSM и каждое исполнение директивы видны в блокчейне.
Обновления
- Exchange и Option Registry являются обновляемыми прокси.
- Account и Option Token являются BeaconProxy. Все аккаунты работают на одной реализации, поэтому одно обновление Account Beacon меняет все аккаунты сразу. То же верно для опционных токенов и Option Token Beacon.
- Timelock владеет proxy admin контракта Exchange и путями обновления Account, Option Token и Option Registry с минимальной задержкой 30 секунд.
- Мультисиг Admin Safe держит роли admin и governor в Exchange и роль owner в Factory.
- Роль governor, которую держит Admin Safe, может заменить подписанта RSM и auctioneer и перевести USDC из Exchange (
rescueUsdcToEvm). На шаге 1 плана доверия она перейдёт под timelock. Как default admin Exchange, Safe также может напрямую, без timelock, выдать или отозватьSEQUENCER_ROLEи любую другую роль Exchange.
Их адреса приведены ниже в таблице конфигурации основной сети. Владелец Account меняется только транзакцией в блокчейне.
Адреса развёрнутых контрактов
Mainnet Alpha
| Контракт | Адрес | Описание |
|---|---|---|
| Exchange | 0xE6b7FaA216cabb2b38B392f577C9c826378b2240 | Основной контракт биржи |
| Exchange Implementation | 0xF7F0610aC612d140bdb34DCD2872828Bc67349cD | Реализация Exchange за прокси |
| Account Implementation | 0xCD87F572bef2855c8Ffb69A6Da3D9785d6017791 | Реализация Account |
| Account Beacon | 0x1b96D6a48d1fB34dC45953697414656D2851Ca93 | Beacon для Account |
| Fetcher | 0x8654912Eae1554662665C13EeD4f1D8A4b028aDB | Вспомогательный контракт для чтения |
| Option Token Implementation | 0x6D0C7a116f9561A8De692c23c4C11682738ed206 | Реализация опционного токена |
| Option Token Beacon | 0xfb320352B25Dba7f139EA9Bf8966891CCa12dC35 | Beacon для опционного токена |
| Factory | 0x2CeeAC2E032e4cCb05FF744619BfAb8cC75efE1b | Фабрика аккаунтов |
| Router | 0xF41FF41B6F007dE851ACc9F43Bd2f597Da741E2D | Вспомогательный контракт для пополнения и маршрутизации |
| Option Registry | 0x8C8efdd5F78C25215d03c8BbD5D1f6f0F1BB0598 | Реестр опционных токенов |
| Option Registry Implementation | 0xF222421a93df1086E329503723b3cC4c30546C46 | Реализация реестра опционов за прокси |
| Hypercall Fee Collector | 0x406ceBfC7063e55761007D1C4b66B29308016602 | Адрес билдера Hyperliquid в ордерах на перпы (также hl_builder_address в GET /exchange-info) |
Конфигурация основной сети
| Параметр | Адрес или значение | Описание |
|---|---|---|
| USDC | 0xb88339CB7199b77E23DB6E890353E22632Ba630f | USDC в HyperEVM, используемый Hypercall |
| Core Deposit | 0x6B9E773128f453f5c2C60935Ee2DE2CBc5390A24 | Вспомогательный контракт для депозитов на HyperCore |
| RSM Signer | 0x502E7fAbF34E84EeB115C34FE947b79A94dF886E | Текущий подписант RSM под контролем оператора |
| Sequencer | 0x56a2924217C91EB4d6989Cf4C7b4dF03020E8944 | Текущий секвенсор |
| Timelock | 0x96f17e6f7269cA4300a391514c109eBA70661674 | Владеет правами администратора прокси Exchange и путями обновления Account, Option Token и Option Registry. Минимальная задержка 30 секунд. |
| Admin Safe | 0xF741246D2e0ADD4EFa7e88BE0961cccf3562b502 | Мультисиг, которому принадлежат роли администратора и governor в Exchange, а также роль владельца Factory |
Исходный код
Исходный код контрактов будет опубликован после завершения аудита.
См. также
- Подпись EIP-712 - Форматы сообщений и подпись
- Авторизация агентов - Настройка API-кошельков
- Онбординг - Создание аккаунта и депозиты
- Аутентификация API - Подпись запросов