Contrats
Voici les adresses actuelles des contrats de Hypercall Mainnet Alpha. Le périmètre de lancement est volontairement restreint pendant l'élargissement progressif de la plateforme.
Les composants on-chain de Hypercall sont déployés sur HyperEVM (chain ID 999). Chaque utilisateur dispose d'un contrat Account. L'Exchange détient l'USDC de la plateforme ainsi que la conservation des options, et exécute les directives signées sur les Accounts. La Factory crée les Accounts. L'Option Registry déploie et reconnaît les jetons d'options.
Responsabilités des contrats
Exchange
Proxy évolutif. Version 0.6.1 sur le réseau principal.
- Détient l'USDC déposé sur HyperCore pour la plateforme (
depositUsdcFor,depositPmLiquidityFor). - Brûle les ERC20 d'options lors du dépôt et émet
Depositpour que le moteur crédite le compte (depositOption). - Enregistre les Accounts créés par la Factory et suit le manager de chaque Account (
getAccounts,getAccount,managers). - Exécute les directives signées.
executeUserDirectivetransmet à l'Account une directive signée par le manager ou par un portefeuille API.executeRsmDirectiveexécute une directive système signée par le RSM (crédits, retraits, état de liquidation). Les deux ne peuvent être appelées que par le séquenceur de Hypercall : les utilisateurs signent, Hypercall soumet. - Suit les nonces utilisés par signataire (
isNonceUsed).
Account
Un par utilisateur, déployé en tant que BeaconProxy. Version 0.2.4 sur le réseau principal.
- Détient les soldes et positions HyperCore de l'utilisateur. Les contrats perpétuels et le spot résident dans le registre HyperCore de l'Account.
- Possède un seul manager (l'EOA qui l'a créé) et un nombre quelconque de portefeuilles API nommés.
- Vérifie les signatures des directives. Les portefeuilles API peuvent signer des ordres et des annulations ; tout le reste requiert le manager. Voir Signature EIP-712.
- Appels directs réservés au manager :
transferTo(recipient, token, amount)transfère des jetons HyperEVM hors de l'Account, etapproveZeroFeeBuilder(builder)approuve un builder Hyperliquid avec des frais maximaux de 0 %. Les ordres perpétuels de Hypercall portent le code builder de Hypercall : cette approbation est donc requise une fois avant le premier ordre perpétuel. depositSpotfait passer du HYPE ou un jeton spot pris en charge de HyperEVM vers l'Account sur HyperCore.
Factory
Crée les Accounts avec createAccount(uint96 salt). L'adresse est déterministe pour un manager et un salt donnés ; predictAccount(manager, salt) la renvoie avant la création. Voir Intégration.
Router
Utilitaire de financement. deposit(account, token, amount, isPerp) achemine l'USDC vers HyperCore via le CoreDepositWallet de Circle, les jetons spot via l'Account, et les jetons d'options via l'Exchange. depositHype(account) fait passer le HYPE natif.
Option Registry
Déploie les ERC20 d'options et fait autorité pour déterminer si un jeton est une option prise en charge (isSupportedOption).
Types de directives
| Directive | Signataire | Description |
|---|---|---|
hl_limit_order | Portefeuille API | Ordre à cours limité Hyperliquid |
hl_cancel_by_oid | Portefeuille API | Annulation par ID d'ordre Hyperliquid |
hl_cancel_by_cloid | Portefeuille API | Annulation par ID d'ordre client |
hc_update_api_wallet | Manager | Ajouter, remplacer ou supprimer un portefeuille API nommé sur l'Account |
hl_add_api_wallet | Manager | Approuver un portefeuille API Hyperliquid pour l'Account sur HyperCore |
hl_send_asset | Manager | Envoyer des actifs depuis l'Account sur HyperCore |
hl_set_abstraction | Manager | Définir le mode de compte HyperCore de l'Account (unifié uniquement) |
Les directives RSM (crédits, retraits, début et fin de liquidation, ordres de récupération en réduction seule) sont signées par le signataire RSM et soumises par le séquenceur. Les utilisateurs ne les signent jamais. Voir Directives RSM.
Liquidation
La liquidation s'exécute dans le moteur de Hypercall. Voir Liquidation. L'Exchange dispose de points d'ancrage permettant à un contrat d'enchères on-chain de transférer le manager d'un Account à l'enchérisseur gagnant, mais aucun commissaire-priseur n'est configuré sur le réseau principal.
Confiance et permissions
Cette section est la référence sur qui peut faire quoi on-chain. Pour la version courte, voir Modèle de confiance.
Soumission
Seul le séquenceur de Hypercall détient SEQUENCER_ROLE sur l'Exchange ; c'est donc le seul appelant de executeUserDirective et executeRsmDirective. Vous signez ; Hypercall soumet. Le séquenceur ne peut pas forger une directive utilisateur : l'Account retrouve lui-même le signataire et n'accepte que son manager ou un portefeuille API actif.
Directives RSM
Lorsque l'état du moteur exige une action on-chain, le signataire RSM signe une directive et le séquenceur la soumet. L'Exchange rejette toute directive RSM qui n'est pas signée par le signataire RSM enregistré (Exchange.rsmSigner). Le signataire RSM actuel est contrôlé par l'opérateur ; la feuille de route précisera comment ce rôle sera décentralisé ou rendu moins dépendant de la confiance.
Directives exécutées par l'Exchange lui-même :
- Envois d'USDC ou de tokens spot depuis le solde HyperCore de l'Exchange, y compris les retraits USDC standard
- Émission d'ERC20 d'options vers une adresse lorsque des options sont retirées
- Déclenchement et arrêt de la liquidation sur un Account
Directives qu'un Account accepte du RSM, imposées par le contrat Account :
- Ordres IOC en réduction seule, ou ventes spot IOC proches du marché contre USDC, sur le solde Hyperliquid de l'Account
- Envois d'actifs depuis l'Account sur HyperCore, uniquement vers l'Exchange (par exemple pour couvrir un solde négatif)
- Annulations d'ordres
Les directives RSM continuent de s'exécuter pendant qu'un Account est en liquidation. Le règlement des options à l'échéance n'est pas une directive RSM : il est appliqué à la trésorerie dans l'état du moteur. L'adresse du signataire RSM et chaque exécution de directive sont visibles on-chain.
Mises à niveau
- Exchange et Option Registry sont des proxies évolutifs.
- Account et Option Token sont des BeaconProxies. Tous les Accounts exécutent la même implémentation, donc une mise à niveau de l'Account Beacon modifie tous les Accounts en une fois. Il en va de même pour les tokens d'options et l'Option Token Beacon.
- Le Timelock détient l'admin du proxy de l'Exchange et les chemins de mise à niveau d'Account, d'Option Token et d'Option Registry, avec un délai minimal de 30 secondes.
- L'Admin Safe (multisig) détient les rôles admin et governor de l'Exchange et le rôle owner de la Factory.
- Le rôle governor, détenu par l'Admin Safe, peut remplacer le signataire RSM et l'auctioneer et déplacer l'USDC de l'Exchange (
rescueUsdcToEvm). Il passera sous le timelock à l'étape 1 du plan de confiance. En tant qu'admin par défaut de l'Exchange, le Safe peut aussi accorder ou révoquerSEQUENCER_ROLEet tout autre rôle de l'Exchange directement, sans le timelock.
Leurs adresses figurent dans le tableau de configuration Mainnet ci-dessous. La propriété d'un compte ne change que par une transaction on-chain.
Adresses déployées
Mainnet Alpha
| Contrat | Adresse | Description |
|---|---|---|
| Exchange | 0xE6b7FaA216cabb2b38B392f577C9c826378b2240 | Contrat principal de l'Exchange |
| Exchange Implementation | 0xF7F0610aC612d140bdb34DCD2872828Bc67349cD | Implémentation de l'Exchange derrière le proxy |
| Account Implementation | 0xCD87F572bef2855c8Ffb69A6Da3D9785d6017791 | Implémentation de l'Account |
| Account Beacon | 0x1b96D6a48d1fB34dC45953697414656D2851Ca93 | Beacon de l'Account |
| Fetcher | 0x8654912Eae1554662665C13EeD4f1D8A4b028aDB | Contrat utilitaire de lecture |
| Option Token Implementation | 0x6D0C7a116f9561A8De692c23c4C11682738ed206 | Implémentation du jeton d'option |
| Option Token Beacon | 0xfb320352B25Dba7f139EA9Bf8966891CCa12dC35 | Beacon du jeton d'option |
| Factory | 0x2CeeAC2E032e4cCb05FF744619BfAb8cC75efE1b | Factory de comptes |
| Router | 0xF41FF41B6F007dE851ACc9F43Bd2f597Da741E2D | Utilitaire de financement et d'acheminement |
| Option Registry | 0x8C8efdd5F78C25215d03c8BbD5D1f6f0F1BB0598 | Registre des jetons d'options |
| Option Registry Implementation | 0xF222421a93df1086E329503723b3cC4c30546C46 | Implémentation de l'Option Registry derrière le proxy |
| Hypercall Fee Collector | 0x406ceBfC7063e55761007D1C4b66B29308016602 | Adresse builder Hyperliquid sur les ordres perpétuels (également hl_builder_address dans GET /exchange-info) |
Configuration du réseau principal
| Paramètre | Adresse ou valeur | Description |
|---|---|---|
| USDC | 0xb88339CB7199b77E23DB6E890353E22632Ba630f | USDC HyperEVM utilisé par Hypercall |
| Core Deposit | 0x6B9E773128f453f5c2C60935Ee2DE2CBc5390A24 | Utilitaire de dépôt HyperCore |
| RSM Signer | 0x502E7fAbF34E84EeB115C34FE947b79A94dF886E | Signataire RSM actuel, contrôlé par l'opérateur |
| Sequencer | 0x56a2924217C91EB4d6989Cf4C7b4dF03020E8944 | Séquenceur actuel |
| Timelock | 0x96f17e6f7269cA4300a391514c109eBA70661674 | Détient l'admin du proxy de l'Exchange ainsi que les chemins de mise à niveau de l'Account, de l'Option Token et de l'Option Registry. Délai minimal de 30 secondes. |
| Admin Safe | 0xF741246D2e0ADD4EFa7e88BE0961cccf3562b502 | Multisig détenant les rôles admin et governor de l'Exchange ainsi que le rôle owner de la Factory |
Code source
Le code source des contrats sera publié une fois l'audit terminé.
Voir aussi
- Signature EIP-712 - Formats de message et signature
- Autorisation des agents - Configuration des portefeuilles API
- Intégration - Création de compte et dépôts
- Authentification API - Signature des requêtes