Skip to main content

A fully typed, validated async client for the Hyperliquid API.

Project description

Typed Hyperliquid

Hyperliquid

A fully typed, validated async client for the Hyperliquid API.

Use autocomplete instead of documentation.

from hyperliquid import Info

async with Info.http() as info:
  mids = await info.all_mids()
  print(mids['BTC'])

Why Typed Hyperliquid?

  • 🎯 Precise Types: Strong typing throughout, so your editor can help before runtime does.
  • ✅ Automatic Validation: Catch upstream API changes earlier, where they are easier to debug.
  • ⚡ Async First: Built for concurrent, network-heavy workflows.
  • 🔒 Safer Usage: Typed inputs and explicit errors reduce avoidable mistakes.
  • 🎨 Better DX: Clear routing, sensible defaults, and minimal ceremony.
  • 📦 Practical Extras: HTTP, request-response WS, streams, and exchange actions under one package.

Package Shape

This package exposes four public entry points:

  • Info for read-only request-response access to the info endpoint
  • Exchange for signed exchange actions
  • Streams for WebSocket subscriptions
  • Hyperliquid as a convenience bundle of all three

Installation

pip install typed-hyperliquid

Quick Start

Public reads

Use Info for request-response reads over HTTP:

from hyperliquid import Info

async with Info.http() as info:
  mids = await info.all_mids()
  book = await info.l2_book('BTC')
  print(mids['BTC'], book['levels'][0][0]['px'])

Public streams

Use Streams for subscription workflows:

from hyperliquid import Streams

async with Streams.new() as streams:
  trades = await streams.trades('BTC')
  async for batch in trades:
    print(batch[0]['px'])
    break

Authenticated actions

Hyperliquid auth is wallet-based, not API-key based:

export HYPERLIQUID_PRIVATE_KEY="your_private_key"
from hyperliquid import Hyperliquid

async with Hyperliquid.http() as client:
  result = await client.exchange.noop()
  print(result['status'])

Transport Model

This package intentionally separates Hyperliquid's three usage modes:

  • Info.http() and Info.ws() for read-only request-response calls
  • Exchange.http(wallet) and Exchange.ws(wallet) for signed exchange actions
  • Streams.new() for subscriptions
  • Hyperliquid.http() and Hyperliquid.ws() as convenience bundles

Exchange.http() and Exchange.ws() accept either a wallet object or a raw private key. Hyperliquid.http() and Hyperliquid.ws() also accept those forms, and can additionally read HYPERLIQUID_PRIVATE_KEY when no wallet is passed.

Documentation

Read the docs

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

typed_hyperliquid-1.0.1.tar.gz (50.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

typed_hyperliquid-1.0.1-py3-none-any.whl (110.6 kB view details)

Uploaded Python 3

File details

Details for the file typed_hyperliquid-1.0.1.tar.gz.

File metadata

  • Download URL: typed_hyperliquid-1.0.1.tar.gz
  • Upload date:
  • Size: 50.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for typed_hyperliquid-1.0.1.tar.gz
Algorithm Hash digest
SHA256 d212dbaa963716d1dded87f465eae895e0e4e4b5ae0b54080a5df1fd8ba4c064
MD5 14cddb0d3b9134fcf9474b1a4a9f640f
BLAKE2b-256 cd17171b5fe3f2cbd4cb6766c39138c71a60aa9b127e47f5213df7e3c5492acb

See more details on using hashes here.

File details

Details for the file typed_hyperliquid-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for typed_hyperliquid-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 63222c12d9428bc427de3009315eba43d154e1263e5722e5bc5e0e6d697c255d
MD5 b64ede30137520136de9918ef07824a4
BLAKE2b-256 4e51d0024d288f8e2df37e6c77effc9da2ec0f311136d1b3b322b6e3edeb75a2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page