컨트랙트
현재 Hypercall 메인넷 알파의 컨트랙트 주소입니다. 거래소 범위가 넓어지는 동안 출시 범위는 의도적으로 제한되어 있습니다.
Hypercall의 온체인 구성 요소는 HyperEVM(체인 ID 999)에 배포되어 있습니다. 각 사용자에게는 Account 컨트랙트가 하나씩 주어집니다. 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이 제출합니다. - 서명자별 사용된 논스를 추적합니다(
isNonceUsed).
Account
사용자당 하나씩 BeaconProxy로 배포됩니다. 메인넷 버전은 0.2.4입니다.
- 사용자의 HyperCore 잔고와 포지션을 소유합니다. 퍼프와 현물은 Account의 HyperCore 원장에 기록됩니다.
- 매니저(Account를 생성한 EOA) 하나와 이름이 지정된 API 지갑을 개수 제한 없이 가집니다.
- 디렉티브 서명을 검증합니다. API 지갑은 주문과 취소에 서명할 수 있으며, 그 외의 모든 작업에는 매니저 서명이 필요합니다. EIP-712 서명을 참조하십시오.
- 매니저 전용 직접 호출:
transferTo(recipient, token, amount)는 HyperEVM 토큰을 Account 밖으로 이동시키고,approveZeroFeeBuilder(builder)는 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_order | API 지갑 | Hyperliquid 지정가 주문 |
hl_cancel_by_oid | API 지갑 | Hyperliquid 주문 ID로 취소 |
hl_cancel_by_cloid | API 지갑 | 클라이언트 주문 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 디렉티브(입금 반영, 출금, 청산 시작 및 중지, 포지션 축소 전용 복구 주문)는 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 잔고에 대한 포지션 축소 전용 IOC 주문, 또는 시장가 부근에서 USDC로 매도하는 IOC 스팟 매도 주문
- HyperCore에서 Account의 자산 송금. 수신처는 Exchange만 가능(예: 음수 잔고 보전)
- 주문 취소
RSM 디렉티브는 Account가 청산 중일 때도 실행됩니다. 옵션 만기 결제는 RSM 디렉티브가 아니며 엔진 상태의 현금에 적용됩니다. RSM 서명자 주소와 모든 디렉티브 실행은 온체인에서 확인할 수 있습니다.
업그레이드
- Exchange와 Option Registry는 업그레이드 가능한 프록시입니다.
- Account와 Option Token은 BeaconProxy입니다. 모든 Account가 같은 구현을 실행하므로 Account Beacon을 한 번 업그레이드하면 모든 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 역할을 타임락 없이 직접 부여하거나 회수할 수 있습니다.
이들의 주소는 아래 메인넷 구성 표에 있습니다. 계정 소유권은 온체인 트랜잭션으로만 변경됩니다.
배포된 주소
메인넷 알파
| 컨트랙트 | 주소 | 설명 |
|---|---|---|
| Exchange | 0xE6b7FaA216cabb2b38B392f577C9c826378b2240 | 메인 거래소 컨트랙트 |
| Exchange Implementation | 0xF7F0610aC612d140bdb34DCD2872828Bc67349cD | 프록시 뒤의 Exchange 구현체 |
| Account Implementation | 0xCD87F572bef2855c8Ffb69A6Da3D9785d6017791 | Account 구현체 |
| Account Beacon | 0x1b96D6a48d1fB34dC45953697414656D2851Ca93 | Account 비콘 |
| Fetcher | 0x8654912Eae1554662665C13EeD4f1D8A4b028aDB | 조회용 보조 컨트랙트 |
| Option Token Implementation | 0x6D0C7a116f9561A8De692c23c4C11682738ed206 | 옵션 토큰 구현체 |
| Option Token Beacon | 0xfb320352B25Dba7f139EA9Bf8966891CCa12dC35 | 옵션 토큰 비콘 |
| Factory | 0x2CeeAC2E032e4cCb05FF744619BfAb8cC75efE1b | Account 팩토리 |
| Router | 0xF41FF41B6F007dE851ACc9F43Bd2f597Da741E2D | 입금 및 라우팅 보조 컨트랙트 |
| Option Registry | 0x8C8efdd5F78C25215d03c8BbD5D1f6f0F1BB0598 | 옵션 토큰 레지스트리 |
| Option Registry Implementation | 0xF222421a93df1086E329503723b3cC4c30546C46 | 프록시 뒤의 옵션 레지스트리 구현체 |
| Hypercall Fee Collector | 0x406ceBfC7063e55761007D1C4b66B29308016602 | 퍼프 주문의 Hyperliquid 빌더 주소(GET /exchange-info의 hl_builder_address와 동일) |
메인넷 설정
| 파라미터 | 주소 또는 값 | 설명 |
|---|---|---|
| USDC | 0xb88339CB7199b77E23DB6E890353E22632Ba630f | Hypercall이 사용하는 HyperEVM USDC |
| Core Deposit | 0x6B9E773128f453f5c2C60935Ee2DE2CBc5390A24 | HyperCore 입금 보조 컨트랙트 |
| RSM Signer | 0x502E7fAbF34E84EeB115C34FE947b79A94dF886E | 현재 운영자가 관리하는 RSM 서명자 |
| Sequencer | 0x56a2924217C91EB4d6989Cf4C7b4dF03020E8944 | 현재 시퀀서 |
| Timelock | 0x96f17e6f7269cA4300a391514c109eBA70661674 | Exchange 프록시 관리자 권한과 Account, Option Token, Option Registry의 업그레이드 경로를 소유합니다. 최소 지연 시간은 30초입니다. |
| Admin Safe | 0xF741246D2e0ADD4EFa7e88BE0961cccf3562b502 | Exchange 관리자 및 거버너 역할과 Factory 소유자 역할을 보유한 멀티시그 |
소스 코드
컨트랙트 소스 코드는 감사 완료 후 공개될 예정입니다.
관련 문서
- EIP-712 서명 - 메시지 형식과 서명
- 에이전트 권한 부여 - API 지갑 설정
- 온보딩 - Account 생성 및 입금
- API 인증 - 요청 서명