Skip to content本文へ移動

Trading API & SDK · SDK Setup & Authentication · 1/8

Python SDK Installation

Overview

The hyperliquid-python-sdk is the official Python SDK for interacting with the Hyperliquid exchange (source). It wraps the HTTP API (POST /info for reads, POST /exchange for signed actions) and the WebSocket feed, handling request signing and nonces for you. Code in this course matches SDK v0.24.0 (October 2026), which requires Python 3.9 or newer.

Installation

pip install hyperliquid-python-sdk

Or with a virtual environment (recommended):

python -m venv venv
source venv/bin/activate  # Linux/Mac
pip install hyperliquid-python-sdk

Core Classes

The SDK is built around two classes, Info and Exchange; WebSocket streaming is reached through Info:

1. Info — Read-Only Data

from hyperliquid.info import Info
from hyperliquid.utils import constants

info = Info(base_url=constants.MAINNET_API_URL, skip_ws=True)  # skip_ws=True: REST only

The Info class provides read-only access to:

2. Exchange — Trading Operations

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

wallet = eth_account.Account.from_key(os.environ["HL_PRIVATE_KEY"])  # never hardcode keys
exchange = Exchange(wallet, base_url=constants.TESTNET_API_URL)  # testnet while learning

The Exchange class handles authenticated operations:

3. WebSocket — Real-Time Data

There is no separate WebSocket class. Unless you pass skip_ws=True, Info opens a connection to wss://api.hyperliquid.xyz/ws (derived from base_url) and you subscribe with callbacks:

from hyperliquid.info import Info
from hyperliquid.utils import constants

info = Info(base_url=constants.MAINNET_API_URL)
info.subscribe({"type": "allMids"}, print)

Testnet vs Mainnet

Always develop on testnet first:

Environment API URL WebSocket URL
Mainnet https://api.hyperliquid.xyz wss://api.hyperliquid.xyz/ws
Testnet https://api.hyperliquid-testnet.xyz wss://api.hyperliquid-testnet.xyz/ws

Authentication

Hyperliquid uses Ethereum-style signatures instead of exchange-issued API keys. Every /exchange request is signed by a private key. This means:

import eth_account

# From private key
wallet = eth_account.Account.from_key("0x...")

# Your address
print(wallet.address)  # 0x...

Security Note: Never hardcode private keys. Use environment variables or a secrets manager.

取引 API と SDK · SDK の準備と認証 · 1/8

Python SDK の導入

概要

hyperliquid-python-sdk は、Hyperliquid の取引所を操作するための公式の Python SDK です(ソース)。HTTP の API(読み取りは POST /info、署名付きの操作は POST /exchange)と WebSocket の配信をまとめて扱います。リクエストの署名と nonce も SDK が受け持ちます。このコースのコードは SDK v0.24.0(2026年10月)に合わせています。Python 3.9 以上が必要です。

インストール

pip install hyperliquid-python-sdk

仮想環境を使う場合(おすすめです):

python -m venv venv
source venv/bin/activate  # Linux/Mac
pip install hyperliquid-python-sdk

中心になるクラス

SDK の中心は Info と Exchange の2つのクラスです。WebSocket の配信も Info から使います。

1. Info: 読み取り専用のデータ

from hyperliquid.info import Info
from hyperliquid.utils import constants

info = Info(base_url=constants.MAINNET_API_URL, skip_ws=True)  # skip_ws=True: REST only

Info クラスで読み取れるものは次のとおりです。

2. Exchange: 取引の操作

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

wallet = eth_account.Account.from_key(os.environ["HL_PRIVATE_KEY"])  # never hardcode keys
exchange = Exchange(wallet, base_url=constants.TESTNET_API_URL)  # testnet while learning

Exchange クラスは、署名が要る操作を受け持ちます。

3. WebSocket: リアルタイムのデータ

WebSocket 専用のクラスはありません。skip_ws=True を渡さなければ、Info が wss://api.hyperliquid.xyz/ws(base_url から決まります)に接続します。購読はコールバックで行います。

from hyperliquid.info import Info
from hyperliquid.utils import constants

info = Info(base_url=constants.MAINNET_API_URL)
info.subscribe({"type": "allMids"}, print)

テストネットとメインネット

開発は必ずテストネットから始めます。

環境 API の URL WebSocket の URL
メインネット https://api.hyperliquid.xyz wss://api.hyperliquid.xyz/ws
テストネット https://api.hyperliquid-testnet.xyz wss://api.hyperliquid-testnet.xyz/ws

認証

Hyperliquid では、取引所が発行する API キーの代わりに Ethereum 方式の署名 を使います。/exchange へのリクエストは、どれも秘密鍵で署名します。つまり次のようになります。

import eth_account

# From private key
wallet = eth_account.Account.from_key("0x...")

# Your address
print(wallet.address)  # 0x...

安全上の注意: 秘密鍵をコードに直接書かないでください。環境変数か、秘密情報の管理サービスを使います。