Zero to HYPE

T1 · Foundations

Orientation

What Hyperliquid is to a developer. Two execution layers share one state, the testnet has a faucet, and API keys can trade but never withdraw.

LessonChecked against the live API on 22 Oct 2026

Read first

The official docs for this track.

Then

Tutorials and write-ups worth your time.

Build

Hands-on work for this track.

  • Guide: Get testnet funds and place one orderComing

Two halves, one chain

Hyperliquid is one blockchain with two execution environments that share a single state.

Most of this roadmap is about HyperCore, because that’s where the trading primitives live, and you talk to it with plain HTTP and WebSocket rather than smart contracts.

The addresses you’ll use

Mainnet Testnet
HTTP API https://api.hyperliquid.xyz https://api.hyperliquid-testnet.xyz
WebSocket wss://api.hyperliquid.xyz/ws wss://api.hyperliquid-testnet.xyz/ws
HyperEVM JSON-RPC https://rpc.hyperliquid.xyz/evm https://rpc.hyperliquid-testnet.xyz/evm
HyperEVM chain ID 999 998
Web app app.hyperliquid.xyz app.hyperliquid-testnet.xyz

The HTTP API has two endpoints. /info reads data and needs no signature; /exchange takes signed actions. Both take a POST with a JSON body. Your first call can be this:

curl -s https://api.hyperliquid-testnet.xyz/info \
  -H 'Content-Type: application/json' -d '{"type":"meta"}'

Getting testnet funds

The testnet faucet only serves addresses that have deposited on mainnet. Once yours has, the faucet at app.hyperliquid-testnet.xyz/drip gives 1,000 mock USDC.

Your account and its API wallets

Your account is the address that holds the funds. Don’t put that key in a bot. Instead, approve an API wallet (the docs also call it an agent wallet): a separate key that signs actions for your account or its sub-accounts.

Nonces work differently

Ethereum makes every transaction use exactly the next nonce. That would break a market maker sending thousands of orders a second, so Hyperliquid does this instead:

The docs suggest batching orders and cancels every 0.1 s, with one atomic counter per signer. Batches that contain only post-only (ALO) orders get priority from validators, so keep them separate from IOC and GTC orders.

Your first order

With testnet USDC and an API wallet, place and cancel one order with an SDK before writing your own signing code. Using the official Python SDK:

from eth_account import Account
from hyperliquid.exchange import Exchange
from hyperliquid.utils import constants

agent = Account.from_key("0x...")  # an API wallet key, testnet only
ex = Exchange(agent, constants.TESTNET_API_URL, account_address="0xYourAccount")
res = ex.order("ETH", True, 0.02, 1000, {"limit": {"tif": "Gtc"}})  # $20, far below market
oid = res["response"]["data"]["statuses"][0]["resting"]["oid"]
ex.cancel("ETH", oid)

When that works, T2 covers reading data properly and T3 covers what the SDK just did for you.