Developer reference
Contract addresses
The contracts on HyperEVM mainnet.
HyperEVM mainnet is chain 999. Each address links to the explorer. The upgradeable contracts are proxies, and the addresses below are the ones to call. Everything on this page is generated at build time from the deployment manifests and configuration in the repository; nothing is typed by hand. Always check an address against the manifest and the explorer before you send anything to it.
Mainnet is not deployed yet. The contracts are listed with their roles; each address appears here, linked to the explorer, once the deployment manifest exists.
- Exchange: balances, positions, settlement, the LP and the payout queue.
- BatchExecutor: forwards the relayer’s batches of signed intents to a fixed list of functions.
- SessionKeyManager: registers, checks and revokes session keys, and verifies every signature.
- BuilderRegistry: the approved builders and the builder fee rate (not upgradeable).
- DepositProxyFactory: derives and deploys each account’s deposit address.
- TOKEN token: the fee-claim token, minted to losing traders.
- Staking: token staking and the USDC rewards accumulator.
- Tokenomics: the mint rules, the tracked LP and the tail progress.
- PriceOracle: a read-only Hyperliquid price helper for services.
- ExchangeLens: read-only views over the Exchange for apps and services.
- ExchangeLens (pricing): read-only pricing views (bust prices, previews).
- CoreLens: read-only views over HyperCore balances.
Collateral and governance
- USDC: the collateral token, Circle’s native USDC on HyperEVM.
0xb88339CB7199b77E23DB6E890353E22632Ba630f - Timelock: owns every upgradeable contract; each owner action waits 2 days here before it can run.
- Role timelock: controls who holds the timelock’s roles, with a delay of 7 days.
- Governance multisig: schedules and executes owner actions on the timelock.
- Guardian multisig: the emergency key: pauses trading, retires markets and cancels scheduled actions.
- Treasury multisig: receives the team’s share of fees.
Every network
The full manifest of each network: instruments, protocol, governance and external addresses.
Mainnet · Chain id 999
Not deployed yet. Addresses appear here once the deployment manifest exists.
Testnet · Chain id 998
Not deployed yet. Addresses appear here once the deployment manifest exists.
Local devnet · Chain id 31337
- Start block
11- Risk profile
parity- Intent id tag
brand:intent-id:v1
| Contract | Address |
|---|---|
exchange | 0x7f15d9a4c024f5dfd02f05fdc29d878303557a7a |
exchangeLens | 0x322813fd9a801c5507c9de605d63cea4f2ce6c44 |
exchangeLensPricing | 0xf1823bc4243b40423b8c8c3f6174e687a4c690b8 |
coreLens | 0xa85233c63b9ee964add6f2cffe00fd84eb32338f |
batchExecutor | 0xb7eaf519940b2578b4c521430637a68e1c195b3b |
sessionKeyManager | 0xdf335343aacb63c5717ea9187e39cea41fe3eb4c |
staking | 0x9884648892a3863f736c7b60717601402238f7e9 |
tokenomics | 0x2fb1cf943c975cb687e6cb3600b2c3388b1c13ee |
token | 0xdb162c8d8e4b01676eaae5fd342bc176c87f3706 |
depositProxyFactory | 0x7d3b18177a953947fad6b1f27c69b45a572f170b |
priceOracle | 0x959922be3caee4b8cd9a407cc3ac1c251c2007b1 |
| Contract | Address |
|---|---|
timelock | 0xdc64a140aa3e981100a9beca4e685f962f0cf6c9 |
roleTimelock | 0x5fc8d32690cc91d4c39d9d3abcbd16989f875707 |
governanceSafe | 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266 |
guardianSafe | 0x70997970c51812dc3a010c7d01b50e0d17dc79c8 |
treasurySafe | 0x3c44cdddb6a900fa2b585dd299e03d12fa4293bc |
| Contract | Address |
|---|---|
usdc | 0x8fe8eebfe4805ddca4ee458df210fc114fadeb54 |
cdw | 0x27b28c4dc0f62b54f8502ac92206f6f16e7a99bb |
multicall3 | 0xca11bde05977b3631167028862be2a173976ca11 |
createX | 0xba5ed099633d3b313e4d5f7bdc1305d3c28ba5ed |
| Symbol | Instrument id | Hyperliquid asset | Price scale |
|---|---|---|---|
| BTC | 0 | 0 | 10 |
| ETH | 1 | 1 | 100 |
Generated from the deployment manifest: deployments/local.json
Funding routes
| Funding routes | Mainnet | Testnet | Local devnet |
|---|---|---|---|
| HyperCore (Hyperliquid spot or perp) | enabled | enabled | enabled |
| HyperEVM | enabled | enabled | enabled |
| Solana (CCTP) | disabled | disabled | enabled |
| Arbitrum (CCTP) | disabled | disabled | enabled |
| Ethereum (CCTP) | disabled | disabled | enabled |
| Robinhood Chain (Across) | disabled | disabled | enabled |
Parameters
Every parameter the docs quote, with its source:
| Parameter | Value | Source |
|---|---|---|
winFee | 2% | contracts/script/config/risk-profiles.json (parity) |
lossFee | 2% | contracts/script/config/risk-profiles.json (parity) |
liqFee | 2% | contracts/script/config/risk-profiles.json (parity) |
stakerFeeShare | 50% | contracts/script/config/risk-profiles.json (parity) constants.stakerFeeShift |
minMargin | $10 | contracts/script/config/risk-profiles.json (parity) |
minNotional | $500 | contracts/script/config/risk-profiles.json (parity) |
maxCloseIds | 25 | contracts/script/config/risk-profiles.json (parity) |
maxLiqBatch | 20 | contracts/script/config/risk-profiles.json (parity) |
maxOpenPositions | 64 | contracts/script/config/risk-profiles.json (parity) |
maxDebtNodes | 50 | contracts/script/config/risk-profiles.json (parity) |
harvestMaxEntries | 64 | contracts/script/config/risk-profiles.json (parity) |
stakingPrecision | 10^36 | contracts/script/config/risk-profiles.json (parity) |
stakingMinAlloc | 1 TOKEN | contracts/script/config/risk-profiles.json (parity) |
minDeposit | 10 USDC | contracts/script/config/risk-profiles.json (parity) minSweepWei |
activationFee | 1 USDC | contracts/script/config/risk-profiles.json (parity) activationFeeWei |
sweepFinalizeBlocks | 1 | contracts/script/config/risk-profiles.json (parity) |
sweepTimeoutBlocks | 5 | contracts/script/config/risk-profiles.json (parity) |
unconfirmedTtl | 30 days | contracts/script/config/risk-profiles.json (parity) |
contractMinWithdraw | no minimum | contracts/script/config/risk-profiles.json (parity) minWithdraw6 |
maxLeverage | 1000× | contracts/script/config/risk-profiles.json (parity) |
maxNotional | $10,000,000 | contracts/script/config/risk-profiles.json (parity) |
deadband | 0.002% | contracts/script/config/risk-profiles.json (parity) deadbandDivisor |
deadbandDivisor | 50,000 | contracts/script/config/risk-profiles.json (parity) |
baseRate | 10% | contracts/script/config/risk-profiles.json (parity) |
maxImpactShare | 90% | contracts/script/config/risk-profiles.json (parity) 1 − baseRate |
rateMultiplier | 15,000 | contracts/script/config/risk-profiles.json (parity) |
referenceNotional | $100,000 | contracts/script/config/risk-profiles.json (parity) |
holdbackStandardBand | 0.0075%–0.06% | contracts/src/lib/PnlMath.sol (the payout curves) |
holdbackOffHoursBand | 0.003%–0.1% | contracts/src/lib/PnlMath.sol (the payout curves) |
holdbackStandardScale | 3.597 | contracts/src/lib/PnlMath.sol (the payout curves) |
holdbackOffHoursScale | 6.085 | contracts/src/lib/PnlMath.sol (the payout curves) |
holdbackStandardPeak | 0.0118% at 0.0338% | contracts/src/lib/PnlMath.sol (the payout curves) |
holdbackOffHoursPeak | 0.0204% at 0.0418% | contracts/src/lib/PnlMath.sol (the payout curves) |
builderFee | 0.5% | contracts/script/config/risk-profiles.json (parity) builderRegistry.maxBuilderFee |
builderFeeCap | 15% | contracts/src/lib/Bounds.sol MAX_TOTAL_FEE (ADR 0029) |
totalFeeCap | 15% | contracts/src/lib/Bounds.sol MAX_TOTAL_FEE (ADR 0029) |
stakerShare | 50% | contracts/script/config/risk-profiles.json (launch) exchange.stakerShareBps |
referralFee | 1.2% | contracts/script/config/risk-profiles.json (launch) exchange.referralFeeBps |
referralDiscount | 0.2% | contracts/script/config/risk-profiles.json (launch) exchange.referralDiscountBps |
referralFeeReferred | 1% | contracts/script/config/risk-profiles.json (launch) exchange.referralFeeBps − referralDiscountBps |
referralToReferrer | 1% | contracts/script/config/risk-profiles.json (launch) exchange.referralFeeBps − referralDiscountBps |
liqReferral | off | contracts/script/config/risk-profiles.json (launch) exchange.liqReferralEnabled |
extraRewardCap | 1% | contracts/src/lib/AdminLib.sol setExtraReward (ADR 0029) |
insolvencyBonusMax | 5× | contracts/src/lib/RebateMath.sol (m = 1 + 4u(2 − u)) |
insolvencyBonusRamp | 3 days | contracts/src/lib/RebateMath.sol BONUS_RAMP |
flatThreshold | $2,000,000 | contracts/script/config/risk-profiles.json (parity) |
flatRate | 100 | contracts/script/config/risk-profiles.json (parity) |
tailDecayScale | $120,000,000 | contracts/script/config/risk-profiles.json (parity) |
stakerRewardCap | $10,000,000 | contracts/script/config/risk-profiles.json (parity) |
lpSeed | $0 | contracts/script/config/risk-profiles.json (parity) |
tokenTransfers | disabled | contracts/script/config/risk-profiles.json (parity) |
instruments | BTC and ETH | contracts/script/config/risk-profiles.json (parity) |
intentTtl | 1 hour | contracts/script/config/mainnet.json |
intakeMaxTtl | 61 minutes | contracts/script/config/mainnet.json |
sessionKeyTtl | 30 days | contracts/script/config/mainnet.json |
timelockDelay | 2 days | contracts/script/config/mainnet.json |
roleTimelockDelay | 7 days | contracts/script/config/mainnet.json |
chainId | 999 | contracts/script/config/mainnet.json |
closeHold | 6 seconds | services/relayer/src/intake/rules.ts DEFAULT_CLOSE_HOLD_MS |
intakeMinWithdraw | 10 USDC | services/relayer/src/intake/rules.ts |
sessionKeyLimit | 8 | services/relayer/src/intake/rules.ts |
maxActiveIntents | 32 | services/relayer/src/intake/rules.ts |
distributeInterval | 30 seconds | services/keepers/src/config.ts |
distributeMinUsd | $100 | services/keepers/src/config.ts |
onwardGasAllowance | 0.1 USDC | packages/hl/src/onward.ts ONWARD_GAS_ALLOWANCE6 |
usdDecimals | 18 | constants.json precision.USD_DECIMALS |
wadDecimals | 18 | constants.json precision.WAD |
maxRevokeKeys | 32 | constants.json |
harvestKeeperEntries | 32 | services/keepers/src/config.ts HARVEST_MAX_ENTRIES |
precompile.bbo | 0x000000000000000000000000000000000000080e | packages/chain/src/precompileLens.ts PRECOMPILES.bbo |
precompile.mark | 0x0000000000000000000000000000000000000806 | packages/chain/src/precompileLens.ts PRECOMPILES.markPx |
precompile.oracle | 0x0000000000000000000000000000000000000807 | packages/chain/src/precompileLens.ts PRECOMPILES.oraclePx |
coreWriter | 0x3333333333333333333333333333333333333333 | packages/chain/src/decoder.ts CORE_WRITER_ADDRESS |
capBand | 10% | config/stages/s0..s3.json offchain.keeper.defaults.bandBps |
assetIndex.BTC | 0 | contracts/script/config/mainnet.json instruments |
assetIndex.ETH | 1 | contracts/script/config/mainnet.json instruments |
bustBuffer.BTC | 0.0476% | contracts/script/config/risk-profiles.json (parity) |
positionMultiplier.BTC | 814.598 | contracts/script/config/risk-profiles.json (parity) |
maxLeverage.BTC | 1000× | contracts/script/config/risk-profiles.json (parity) |
bustDistance.BTC | 0.0524% | contracts/script/config/risk-profiles.json (parity): PnlMath.bustPrice at maxLeverage |
bustBuffer.ETH | 0.0481% | contracts/script/config/risk-profiles.json (parity) |
positionMultiplier.ETH | 483.979 | contracts/script/config/risk-profiles.json (parity) |
maxLeverage.ETH | 1000× | contracts/script/config/risk-profiles.json (parity) |
bustDistance.ETH | 0.0519% | contracts/script/config/risk-profiles.json (parity): PnlMath.bustPrice at maxLeverage |
Contract bounds
The limits every governance setter checks, the constants fixed in code, and the encodings that switch a dormant defence off, exactly as the contracts export them (raw integers; USD amounts carry the USD decimals, rates are wads):
| Parameter | Value |
|---|---|
WAD | 1,000,000,000,000,000,000 |
BPS | 10,000 |
ACC_PRECISION | 1,000,000,000,000,000,000,000,000,000,000,000,000 |
USD_DECIMALS | 18 |
USDC_EVM_DECIMALS | 6 |
CORE_USDC_WEI_DECIMALS | 8 |
PERP_USD_DECIMALS | 6 |
MAX_TOTAL_FEE | 150,000,000,000,000,000 |
BPS | 10,000 |
BPS_TO_WAD | 100,000,000,000,000 |
MIN_MARGIN_LOWER | 1,000,000,000,000,000,000 |
MIN_MARGIN_UPPER | 10,000,000,000,000,000,000,000 |
MIN_NOTIONAL_LOWER | 10,000,000,000,000,000,000 |
MIN_NOTIONAL_UPPER | 1,000,000,000,000,000,000,000,000 |
MAX_LEVERAGE_LOWER | 1 |
MAX_LEVERAGE_UPPER | 1,000 |
MAX_NOTIONAL_UPPER | 50,000,000,000,000,000,000,000,000 |
MAX_BUST_BUFFER | 10,000,000,000,000,000 |
MAX_BUST_BUFFER_TIMES_LEVERAGE | 500,000,000,000,000,000 |
DEADBAND_DIVISOR_LOWER | 20,000 |
DEADBAND_DIVISOR_UPPER | 10,000,000 |
MAX_BASE_RATE | 500,000,000,000,000,000 |
MAX_BASE_RATE_STEP | 50,000,000,000,000,000 |
RATE_MULTIPLIER_LOWER | 1,000,000,000,000,000,000 |
RATE_MULTIPLIER_UPPER | 1,000,000,000,000,000,000,000,000 |
POSITION_MULTIPLIER_LOWER | 1,000,000,000,000,000,000 |
POSITION_MULTIPLIER_UPPER | 1,000,000,000,000,000,000,000,000 |
REFERENCE_NOTIONAL_LOWER | 1,000,000,000,000,000,000,000 |
REFERENCE_NOTIONAL_UPPER | 100,000,000,000,000,000,000,000,000 |
MAX_ASSET_INDEX_EXCLUSIVE | 10,000 |
MAX_INSTRUMENTS | 16 |
GUARD_MODE_MAX | 2 |
MAX_SPREAD_BPS_LOWER | 1 |
MAX_SPREAD_BPS_UPPER | 500 |
MARK_BAND_BPS_LOWER | 1 |
MARK_BAND_BPS_UPPER | 1,000 |
ORACLE_BAND_BPS_LOWER | 1 |
ORACLE_BAND_BPS_UPPER | 2,000 |
MAX_CLAMP_BPS | 1,000 |
CLAMP_OFF | 65,535 |
MAX_PROFIT_HOLD_SECS | 300 |
DEFAULT_MAX_SPREAD_BPS | 5 |
DEFAULT_MARK_BAND_BPS | 15 |
DEFAULT_ORACLE_BAND_BPS | 75 |
DEFAULT_MARK_CLAMP_BPS | 3 |
DEFAULT_ORACLE_CLAMP_BPS | 12 |
FLOW_OFF | 0 |
ACCOUNT_CAP_OFF | 0 |
MAX_SIDE_CAP_EQUITY_BPS | 1,000,000 |
SIDE_CAP_OFF | 4,294,967,295 |
CAP_CEILING_OFF | 340,282,366,920,938,463,463,374,607,431,768,211,455 |
MAX_CLOSE_IDS_LOWER | 1 |
MAX_CLOSE_IDS_UPPER | 25 |
MAX_LIQ_BATCH_LOWER | 1 |
MAX_LIQ_BATCH_UPPER | 50 |
MAX_OPEN_POSITIONS_LOWER | 1 |
MAX_OPEN_POSITIONS_UPPER | 256 |
MAX_DEBT_NODES_LOWER | 1 |
MAX_DEBT_NODES_UPPER | 100 |
MAX_AUTO_HARVEST_ENTRIES | 8 |
HARVEST_MAX_ENTRIES | 64 |
MAX_SYNC_ENTRIES | 32 |
BREAKER_HALF_LIFE_LOWER | 300 |
BREAKER_HALF_LIFE_UPPER | 86,400 |
MAX_DRAWDOWN_BPS | 10,000 |
DRAWDOWN_FLOOR_OFF | 340,282,366,920,938,463,463,374,607,431,768,211,455 |
AUTO_RESET_LOWER | 3,600 |
AUTO_RESET_UPPER | 604,800 |
GUARDIAN_RESET_DELAY_LOWER | 60 |
GUARDIAN_RESET_DELAY_UPPER | 3,600 |
GUARDIAN_TRIPS_PER_WINDOW | 2 |
GUARDIAN_TRIP_WINDOW | 86,400 |
MIN_SWEEP_WEI_LOWER | 100,000,000 |
MIN_SWEEP_WEI_UPPER | 100,000,000,000 |
MAX_SWEEP_RESERVE_WEI | 100,000,000 |
FINALIZE_DELAY_LOWER | 1 |
FINALIZE_DELAY_UPPER | 10 |
SWEEP_TIMEOUT_UPPER | 600 |
IN_FLIGHT_RING_SIZE | 8 |
IN_FLIGHT_WINDOW_LOWER | 1 |
UNCONFIRMED_TTL_LOWER | 86,400 |
UNCONFIRMED_TTL_UPPER | 7,776,000 |
MAX_MIN_WITHDRAW6 | 100,000,000 |
MAX_ACTIVATION_FEE_WEI | 1,000,000,000 |
DIRECT_CLOSE_MODE_MAX | 2 |
FAILSAFE_DELAY_LOWER | 600 |
FAILSAFE_DELAY_UPPER | 604,800 |
PRECOMPILE_GAS_LOWER | 20,000 |
PRECOMPILE_GAS_UPPER | 200,000 |
HOOK_GAS | 200,000 |
HOOK_GAS_OVERHEAD | 12,000 |
HOOK_GAS_FLOOR | 215,175 |
INTENT_TTL_LOWER | 300 |
INTENT_TTL_UPPER | 86,400 |
SESSION_DURATION_LOWER | 3,600 |
SESSION_DURATION_UPPER | 7,776,000 |
TTL_OFF | 4,294,967,295 |
MAX_REVOKE_KEYS | 32 |
MAX_BATCH_CALLS | 32 |
MAX_RESULT_BYTES | 256 |
CORE_LENS_READ_GAS | 30,000 |
MAX_FLAT_THRESHOLD_USD | 1,000,000,000,000,000,000,000,000,000 |
MAX_FLAT_RATE | 1,000,000,000,000,000,000,000 |
TAIL_DECAY_SCALE_LOWER | 1,000,000,000,000,000,000,000,000 |
TAIL_DECAY_SCALE_UPPER | 1,000,000,000,000,000,000,000,000,000,000 |
STAKER_CAP_UPPER | 10,000,000,000,000,000,000,000,000,000 |
MIN_ALLOC | 1,000,000,000,000,000,000 |