Comprehensive guide covering Hyperliquid's architecture, API, HyperCore vs HyperEVM, gas, wallets, standards, tools, security, testing, and deployment best p...
CRITICAL: Never hallucinate a contract address. Wrong addresses mean lost funds. If an address isn't listed here, verify it on https://explorer.hyperliquid.xyz or official Hyperliquid documentation before using it.
| Name | Address | What It Does |
|---|---|---|
| HYPE Bridge (HyperCore → HyperEVM) | 0x2222222222222222222222222222222222222222 | System address for HYPE transfers between layers |
The bridge address is deterministic and canonical. Sending HYPE to this address on HyperEVM moves it to HyperCore. For the reverse (HyperCore → HyperEVM), use the /exchange API with "evmUserModify" or "spotSend" action type.
HyperSwap V2 is the primary AMM DEX on HyperEVM. Uniswap V2 compatible.
| Contract | Address | Status |
|---|---|---|
| HyperSwap V2 Router | 0xb4a9C4a5e4c4D1E5e5C3A7D8B9F0E1A2B3C4D5E6 | Verify on explorer |
| HyperSwap V2 Factory | 0xA1B2C3D4E5F6a7b8c9d0e1f2A3B4C5D6E7F8A9B0 | Verify on explorer |
⚠️ IMPORTANT: HyperSwap V2 addresses above are placeholders. Before using, verify the actual deployed addresses at:
- https://explorer.hyperliquid.xyz (search for "HyperSwap" or "UniswapV2Router")
- Official HyperSwap documentation
- The HyperSwap GitHub repository
Never use an address from this file without verifying it onchain first.
To verify an address:
# Check the contract exists and has code
cast code 0xTHEADDRESS --rpc-url https://rpc.hyperliquid.xyz/evm
# Non-empty output = contract deployed at that address
# Check it's a V2 router by calling factory()
cast call 0xTHEADDRESS "factory()(address)" --rpc-url https://rpc.hyperliquid.xyz/evm
| Token | Address | Decimals | Notes |
|---|---|---|---|
| HYPE | Native currency | 18 | Use msg.value, not ERC-20 |
| USDC | Verify on explorer | 6 | Bridged from external chains |
| WETH | Verify on explorer | 18 | Wrapped ETH bridged to HyperEVM |
| WHYPE | Verify on explorer | 18 | Wrapped HYPE (ERC-20 version) |
All token addresses on HyperEVM must be verified on https://explorer.hyperliquid.xyz before use.
# Verify contract exists
cast code 0xADDRESS --rpc-url https://rpc.hyperliquid.xyz/evm
# Returns bytecode if deployed, "0x" if not
# Verify token symbol
cast call 0xADDRESS "symbol()(string)" --rpc-url https://rpc.hyperliquid.xyz/evm
# Verify token decimals
cast call 0xADDRESS "decimals()(uint8)" --rpc-url https://rpc.hyperliquid.xyz/evm
HyperCore assets are identified by name in the API, not by address. They do NOT have contract addresses.
Perp markets — use asset index from meta.universe:
meta = requests.post('https://api.hyperliquid.xyz/info',
json={'type': 'meta'}).json()
# ETH perp is typically at index 1
# BTC perp is typically at index 0
# Always fetch the index dynamically, never hardcode
Spot markets — use asset ID = 10000 + index:
spot_meta = requests.post('https://api.hyperliquid.xyz/info',
json={'type': 'spotMeta'}).json()
# PURR (first HIP-1 token) might be spot index 0 → asset ID 10000
# Always check dynamically
The standard Multicall3 deployment:
0xcA11bde05977b3631167028862bE2a173976CA11
This CREATE2-deployed contract should be present on HyperEVM. Verify with:
cast code 0xcA11bde05977b3631167028862bE2a173976CA11 --rpc-url https://rpc.hyperliquid.xyz/evm
If it returns code, Multicall3 is available. Use it to batch read calls.
symbol() and name() on any token address.One wrong address in production = permanent fund loss. There is no undo.
{"type":"meta"}HyperEVM uses standard EIP-55 checksummed Ethereum addresses. All tools validate checksums automatically.
# Convert to checksummed format
cast to-check-sum-address 0xdeadbeef...
HyperCore uses the same address format but lowercased in API responses. Both formats work — just be consistent in your code.
ZIP package — ready to use