このページは機械翻訳されています。英語の原文が正式版です。 英語で読む →
メインコンテンツにスキップ

コントラクト

メインネット・アルファ

以下は現在のHypercallメインネット・アルファのコントラクトアドレスです。取引所の対象範囲を広げていく間、ローンチ時のスコープは意図的に限定しています。

Hypercallのオンチェーンコンポーネントは、HyperEVM(チェーンID 999)上にデプロイされています。各ユーザーにはAccountコントラクトが1つずつ割り当てられます。ExchangeはUSDCとオプションを取引所として保管し、署名済みディレクティブをAccountに対して実行します。FactoryはAccountを作成し、Option Registryはオプショントークンをデプロイして識別します。

コントラクトの役割​

Exchange​

アップグレード可能なプロキシです。メインネットのバージョンは 0.6.1 です。

  • 預け入れられたUSDCを取引所としてHyperCore上で保管します(depositUsdcFor、depositPmLiquidityFor)。
  • 入金時にオプションERC20をバーンし、エンジンが残高に反映できるよう Deposit を発行します(depositOption)。
  • Factoryが作成したAccountを登録し、各Accountのマネージャーを記録します(getAccounts、getAccount、managers)。
  • 署名済みディレクティブを実行します。executeUserDirective は、マネージャーまたはAPIウォレットが署名したディレクティブをAccountに転送します。executeRsmDirective は、RSMが署名したシステムディレクティブ(入金反映、出金、清算状態)を実行します。どちらもHypercallのシーケンサーのみが呼び出せます。ユーザーが署名し、Hypercallが送信します。
  • 署名者ごとに使用済みのnonceを記録します(isNonceUsed)。

Account​

ユーザーごとに1つ、BeaconProxyとしてデプロイされます。メインネットのバージョンは 0.2.4 です。

  • ユーザーのHyperCore上の残高とポジションを保有します。パーペチュアルと現物は、AccountのHyperCore台帳上に置かれます。
  • マネージャー(Accountを作成したEOA)を1つ持ち、名前付きのAPIウォレットを任意の数だけ持てます。
  • ディレクティブの署名を検証します。APIウォレットは注文とキャンセルに署名できます。それ以外の操作にはマネージャーの署名が必要です。EIP-712署名を参照してください。
  • マネージャーのみが直接呼び出せる関数として、transferTo(recipient, token, amount) と approveZeroFeeBuilder(builder) があります。前者はHyperEVM上のトークンをAccountから送金し、後者はHyperliquidのビルダーを最大手数料0%で承認します。Hypercallのパーペチュアル注文にはHypercallのビルダーコードが付くため、最初のパーペチュアル注文の前にこの承認が一度必要です。
  • depositSpot は、HYPEまたは対応する現物トークンをHyperEVMからHyperCore上のAccountへブリッジします。

Factory​

createAccount(uint96 salt) でAccountを作成します。アドレスはマネージャーとsaltの組み合わせから決定的に定まり、predictAccount(manager, salt) で作成前に取得できます。オンボーディングを参照してください。

Router​

入金用のヘルパーです。deposit(account, token, amount, isPerp) は、USDCをCircleのCoreDepositWallet経由でHyperCoreへ、現物トークンをAccount経由で、オプショントークンをExchange経由でそれぞれルーティングします。depositHype(account) はネイティブのHYPEをブリッジします。

Option Registry​

オプションERC20をデプロイし、あるトークンが対応オプションかどうかを判定する唯一の情報源です(isSupportedOption)。

ディレクティブの種類​

ディレクティブ署名者説明
hl_limit_orderAPIウォレットHyperliquidの指値注文
hl_cancel_by_oidAPIウォレットHyperliquidの注文IDによるキャンセル
hl_cancel_by_cloidAPIウォレットクライアント注文IDによるキャンセル
hc_update_api_walletマネージャーAccountの名前付きAPIウォレットの追加、置き換え、削除
hl_add_api_walletマネージャーHyperCore上でAccountのHyperliquid APIウォレットを承認
hl_send_assetマネージャーHyperCore上のAccountから資産を送金
hl_set_abstractionマネージャーAccountのHyperCoreアカウントモードを設定(unifiedのみ)

RSMディレクティブ(入金反映、出金、清算の開始と停止、reduce-onlyの回復注文)は、RSM署名者が署名し、シーケンサーが送信します。ユーザーがこれらに署名することはありません。RSMディレクティブを参照してください。

清算​

清算はHypercallエンジン内で実行されます。清算を参照してください。Exchangeには、オンチェーンのオークションコントラクトがAccountのマネージャーを落札者に移転するためのフックがありますが、メインネットではオークショニアは設定されていません。

信頼と権限​

このセクションは、オンチェーンで誰が何をできるかのリファレンスです。要約は信頼モデルをご覧ください。

送信​

ExchangeのSEQUENCER_ROLEを保持しているのはHypercallのシーケンサーのみであり、executeUserDirectiveとexecuteRsmDirectiveを呼び出せるのはシーケンサーだけです。署名はユーザーが行い、送信はHypercallが行います。シーケンサーがユーザーディレクティブを偽造することはできません。Accountが自ら署名者を復元し、マネージャーまたは有効なAPIウォレットのみを受け付けます。

RSMディレクティブ​

エンジンの状態がオンチェーンでのアクションを必要とする場合、RSM署名者がディレクティブに署名し、シーケンサーがそれを送信します。Exchangeは、登録されたRSM署名者(Exchange.rsmSigner)が署名していないRSMディレクティブをすべて拒否します。現在のRSM署名者はオペレーターが管理しています。この役割をどのように分散化し、あるいは信頼を最小化していくかは、ロードマップで公開する予定です。

Exchangeが自ら実行するディレクティブ:

  • ExchangeのHyperCore残高からのUSDCまたはスポットトークンの送金(通常のUSDC出金を含む)
  • オプションの出金時に、オプションERC20をアドレスへミント
  • Accountに対する清算の開始と停止

AccountがRSMから受け付けるディレクティブ(Accountコントラクトが制約を強制):

  • AccountのHyperliquid残高に対する、reduce-onlyのIOC注文、または市場価格付近でUSDCへ売却するIOCスポット売り注文
  • HyperCore上のAccountからの資産送金。送金先はExchangeのみ(例: マイナス残高の補填)
  • 注文のキャンセル

RSMディレクティブは、Accountが清算中でも実行されます。オプションの満期決済はRSMディレクティブではなく、エンジンの状態で現金に対して適用されます。RSM署名者のアドレスと、すべてのディレクティブの実行はオンチェーンで確認できます。

アップグレード​

  • ExchangeとOption Registryはアップグレード可能なプロキシです。
  • AccountとOption TokenはBeaconProxyです。すべてのAccountが同じ実装で動作するため、Account Beaconを1回アップグレードするとすべてのAccountが同時に変わります。オプショントークンとOption Token Beaconについても同様です。
  • Timelockは、Exchangeのプロキシ管理者権限と、Account、Option Token、Option Registryのアップグレード経路を保有しています。最小遅延は30秒です。
  • Admin Safeマルチシグは、Exchangeの管理者ロールとガバナーロール、およびFactoryのオーナーロールを保有しています。
  • Admin Safeが保有するガバナーロールは、RSM署名者とオークショニアを差し替え、ExchangeのUSDCを移動できます(rescueUsdcToEvm)。信頼モデル計画のステップ1でタイムロックの対象になります。また、Exchangeのデフォルト管理者として、SafeはSEQUENCER_ROLEをはじめExchangeのあらゆるロールを、タイムロックを経ずに直接付与・剥奪できます。

これらのアドレスは下記のメインネット設定の表にあります。アカウントの所有権は、オンチェーントランザクションによってのみ変更されます。

デプロイ済みアドレス​

メインネット・アルファ​

コントラクトアドレス説明
Exchange0xE6b7FaA216cabb2b38B392f577C9c826378b2240メインのExchangeコントラクト
Exchange Implementation0xF7F0610aC612d140bdb34DCD2872828Bc67349cDプロキシの背後にあるExchangeの実装
Account Implementation0xCD87F572bef2855c8Ffb69A6Da3D9785d6017791Accountの実装
Account Beacon0x1b96D6a48d1fB34dC45953697414656D2851Ca93Accountのビーコン
Fetcher0x8654912Eae1554662665C13EeD4f1D8A4b028aDB読み取り用ヘルパーコントラクト
Option Token Implementation0x6D0C7a116f9561A8De692c23c4C11682738ed206オプショントークンの実装
Option Token Beacon0xfb320352B25Dba7f139EA9Bf8966891CCa12dC35オプショントークンのビーコン
Factory0x2CeeAC2E032e4cCb05FF744619BfAb8cC75efE1bAccountのファクトリー
Router0xF41FF41B6F007dE851ACc9F43Bd2f597Da741E2D入金およびルーティング用ヘルパー
Option Registry0x8C8efdd5F78C25215d03c8BbD5D1f6f0F1BB0598オプショントークンのレジストリ
Option Registry Implementation0xF222421a93df1086E329503723b3cC4c30546C46プロキシの背後にあるOption Registryの実装
Hypercall Fee Collector0x406ceBfC7063e55761007D1C4b66B29308016602パーペチュアル注文に付くHyperliquidのビルダーアドレス(GET /exchange-info の hl_builder_address と同じ)

メインネットの設定​

パラメータアドレスまたは値説明
USDC0xb88339CB7199b77E23DB6E890353E22632Ba630fHypercallが使用するHyperEVM上のUSDC
Core Deposit0x6B9E773128f453f5c2C60935Ee2DE2CBc5390A24HyperCoreへの入金ヘルパー
RSM Signer0x502E7fAbF34E84EeB115C34FE947b79A94dF886E現在のオペレーター管理下のRSM署名者
Sequencer0x56a2924217C91EB4d6989Cf4C7b4dF03020E8944現在のシーケンサー
Timelock0x96f17e6f7269cA4300a391514c109eBA70661674Exchangeのプロキシ管理者権限と、Account、Option Token、Option Registryのアップグレード経路を保有します。最小遅延は30秒です。
Admin Safe0xF741246D2e0ADD4EFa7e88BE0961cccf3562b502Exchangeのadminロールとgovernorロール、およびFactoryのownerロールを保有するマルチシグ

ソースコード​

コントラクトのソースコードは、監査完了後に公開する予定です。

関連ページ​