Skip to content

bullpen hyperliquid status

Last updated: July 13, 2026

Show account positions and balances

Usage

bullpen hyperliquid status [OPTIONS]

Live Help

Show account positions and balances

Usage: bullpen hyperliquid status [OPTIONS]

Options:
      --address <ADDRESS>
          Ethereum address to query (defaults to authenticated account)

      --no-multi-wallet-warning
          Suppress the table-mode warning shown when multiple EVM wallet accounts exist

      --output <OUTPUT>
          Output format for command results

          [possible values: table, json]

      --all-dexes
          Query main plus every registered HIP-3 perp DEX

      --env <ENV>
          Target environment to connect to (overrides config.toml)

          [env: BULLPEN_ENV=]
          [possible values: staging, production]

      --config <CONFIG>
          Path to a custom config.toml file (overrides $BULLPEN_CONFIG and the default location).

          Explicit --config and BULLPEN_CONFIG paths fail closed: if the file is missing, the CLI exits validation instead of silently loading defaults. Credentials still resolve via BULLPEN_HOME, so set BULLPEN_HOME too when isolating a session.

      --read-only
          Enable read-only mode: blocks all mutating commands

      --non-interactive
          Suppress interactive prompts; does NOT imply --yes for money-moving commands

          [env: BULLPEN_NON_INTERACTIVE=]

  -h, --help
          Print help (see a summary with '-h')

EXAMPLES:
  # Show Hyperliquid status for an address
  bullpen hyperliquid status --address 0x1111111111111111111111111111111111111111

  # Export Hyperliquid status as JSON
  bullpen hyperliquid status --address 0x1111111111111111111111111111111111111111 --output json

  # Export positions across main plus registered HIP-3 DEXes
  bullpen hyperliquid status --address 0x1111111111111111111111111111111111111111 --all-dexes --output json

Example Commands

bullpen hyperliquid status --address 0x1111111111111111111111111111111111111111
bullpen hyperliquid status --address 0x1111111111111111111111111111111111111111 --output json
bullpen hyperliquid status --address 0x1111111111111111111111111111111111111111 --all-dexes --output json

JSON Output

Contract: JSON Output Contract.

Successful output is a single JSON document. The shape below is representative for this command family; commands may add fields without breaking the shared contract.

Schema version: 1 when a command emits schema_version; otherwise treat the current command shape as contract version 1.

Top-level Keys

key type nullable notes
address string no Hyperliquid account address queried
signer_address string yes Authenticated signer address when the query is resolved from login state
dex_scope string yes Present as all only for --all-dexes output
totals object yes Aggregate totals across main plus registered HIP-3 DEXes for --all-dexes output
per_dex array yes Per-DEX account/position breakdown for --all-dexes; omitted otherwise
positions array no Open perp positions with coin, side, size, mark/entry price, value, PnL, leverage, and risk fields
positions[].dex_label string yes Present for --all-dexes; labels the DEX that returned this position
positions[].registry_index integer yes HIP-3 registry index for --all-dexes position rows
margin_summary object no Account value, raw USD, total margin used, and total notional position summary
cross_margin_summary object yes Cross-margin account summary when Hyperliquid returns one

Example

Example JSON output
bullpen hyperliquid status --address 0x1111111111111111111111111111111111111111 --output json
{
  "address": "0x1111111111111111111111111111111111111111",
  "positions": [
    {
      "coin": "BTC",
      "side": "long",
      "size": "0.01",
      "entry_px": "65000",
      "mark_px": "66250",
      "position_value": "650",
      "unrealized_pnl": "12.5",
      "return_on_equity": "0.019",
      "leverage": "cross 5x",
      "liquidation_px": "52000",
      "margin_used": "125.00"
    }
  ],
  "margin_summary": {
    "accountValue": "1250.50",
    "totalNtlPos": "500.00",
    "totalRawUsd": "1125.50",
    "totalMarginUsed": "125.00"
  },
  "cross_margin_summary": {
    "accountValue": "1250.50",
    "totalNtlPos": "500.00",
    "totalRawUsd": "1125.50",
    "totalMarginUsed": "125.00"
  }
}

When --all-dexes is passed, the command returns an all-DEX envelope instead of the default main-DEX shape. That envelope includes dex_scope: "all", aggregate decimal-string totals, per_dex DEX detail rows, and flattened positions where each row carries dex_label and registry_index. Default status output remains main-DEX scoped for script compatibility.

All-DEX Example

All-DEX example JSON output
bullpen hyperliquid status --address 0x1111111111111111111111111111111111111111 --all-dexes --output json
{
  "address": "0x1111111111111111111111111111111111111111",
  "dex_scope": "all",
  "totals": {
    "account_value": "30.75",
    "total_ntl_pos": "13",
    "total_raw_usd": "30.75",
    "total_margin_used": "4",
    "cross_account_value": "30.25",
    "cross_maintenance_margin_used": "1",
    "withdrawable": "19",
    "unrealized_pnl": "0.25",
    "position_count": 2
  },
  "per_dex": [
    {
      "label": "main",
      "registry_index": 0,
      "position_count": 1,
      "positions": []
    },
    {
      "label": "dex-a",
      "dex": "dex-a",
      "registry_index": 1,
      "position_count": 1,
      "positions": []
    }
  ],
  "positions": [
    {
      "dex_label": "main",
      "registry_index": 0,
      "coin": "BTC",
      "side": "long",
      "size": "0.1",
      "position_value": "6",
      "unrealized_pnl": "0.75",
      "return_on_equity": "0.1"
    }
  ]
}

Stability

Patch releases may add nullable or optional fields. Minor releases may add required fields or increment schema_version. Major releases may remove or rename fields.