Typed /

Fetch Your Balances & Positions

Use client.info for account-state reads. These methods take a user address, not a signing wallet.

Fetch Spot Balances

from typed_hyperliquid import Hyperliquid

user = '0xYourAccountAddress'

async with Hyperliquid.new(public=True) as client:
  spot = await client.info.spot_clearinghouse_state(user=user)
  for balance in spot['balances']:
    print(balance['coin'], balance['total'])

Fetch Perp Balances And Positions

clearinghouse_state() returns margin summaries plus open perpetual positions.

If you trade on a non-default perp dex, pass dex=....

from typed_hyperliquid import Hyperliquid

user = '0xYourAccountAddress'

async with Hyperliquid.new(public=True) as client:
  state = await client.info.clearinghouse_state(user=user)
  print(state['marginSummary']['accountValue'])

  for asset_position in state['assetPositions']:
    position = asset_position['position']
    print(position['coin'], position['szi'], position['entryPx'])

Fetch Portfolio History

Use user_portfolio() for account-value and PnL history across the built-in periods.

from typed_hyperliquid import Hyperliquid

user = '0xYourAccountAddress'

async with Hyperliquid.new(public=True) as client:
  portfolio = await client.info.user_portfolio(user=user)
  print(portfolio)

Fetch Subaccounts

sub_accounts() returns both perp and spot state for each of the account's subaccounts, or None when it has none.

from typed_hyperliquid import Hyperliquid

user = '0xYourAccountAddress'

async with Hyperliquid.new(public=True) as client:
  sub_accounts = await client.info.sub_accounts(user=user)
  print([account['name'] for account in sub_accounts or []])