Skip to content

bullpen hyperliquid orders

Last updated: July 13, 2026

Show open orders for an address, optionally filtered by coin

Usage

bullpen hyperliquid orders [OPTIONS] [COIN]

Live Help

Show open orders for an address, optionally filtered by coin

Usage: bullpen hyperliquid orders [OPTIONS] [COIN]

Arguments:
  [COIN]
          Optional coin filter, for example BTC or xyz:SPCX

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]

      --dex <DEX>
          Optional dex context for the request

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

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

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

      --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 open Hyperliquid orders for an address
  bullpen hyperliquid orders --address 0x1111111111111111111111111111111111111111

  # Export open BTC orders as JSON before cleanup
  bullpen hyperliquid orders BTC --address 0x1111111111111111111111111111111111111111 --output json

  # Export open HIP-3 orders by DEX-prefixed coin or explicit DEX
  bullpen hyperliquid orders xyz:SPCX --address 0x1111111111111111111111111111111111111111 --output json

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

OUTPUT NOTE:
  Main-perp filters keep the basic open-orders JSON shape. HIP-3 scopes use the
  frontend-order envelope so DEX identity is preserved; JSON then matches
  `hyperliquid frontend-orders`.

Example Commands

bullpen hyperliquid orders --address 0x1111111111111111111111111111111111111111
bullpen hyperliquid orders BTC --address 0x1111111111111111111111111111111111111111 --output json
bullpen hyperliquid orders xyz:SPCX --address 0x1111111111111111111111111111111111111111 --output json
bullpen hyperliquid orders --address 0x1111111111111111111111111111111111111111 --all-dexes --output json
bullpen hyperliquid orders --address 0x1111111111111111111111111111111111111111 --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
schema_version integer yes Present on DEX-scoped/frontend envelopes; currently 1
kind string yes Present on DEX-scoped/frontend envelopes, such as hyperliquid_frontend_orders_all_dex_report
address string no Hyperliquid account address queried
all_dexes boolean yes Present on frontend envelopes; true for --all-dexes
dex_scope string yes Present as single for --dex or all for --all-dexes
per_dex array yes Per-DEX breakdown for --all-dexes; omitted otherwise
orders array no Open orders returned by Hyperliquid
orders[].dex_id string yes Present on --dex/--all-dexes frontend rows to disambiguate duplicate symbols
orders[].instrument_id string yes Stable DEX-qualified instrument id for frontend rows
orders[].row_key string yes Stable DEX-qualified row key for frontend rows
orders[].coin string no Market symbol
orders[].side string no Hyperliquid side label
orders[].limit_px string/decimal no Limit price
orders[].sz string/decimal no Remaining order size
orders[].oid integer no Hyperliquid order id
orders[].timestamp_iso string no UTC rendering of the order timestamp
orders[].order_type string yes Present on frontend rows
orders[].orig_sz string/decimal yes Original order size; present on frontend rows and usually present on basic rows
orders[].trigger_condition string yes Present on frontend rows
orders[].children array yes Child frontend orders recursively mapped with the same snake_case field names

Example

bullpen hyperliquid orders --address 0x1111111111111111111111111111111111111111 --output json
{
  "address": "0x1111111111111111111111111111111111111111",
  "orders": [
    {
      "coin": "BTC",
      "side": "B",
      "limit_px": "65000",
      "sz": "0.01",
      "oid": 123456789,
      "timestamp": 1779920575000,
      "timestamp_iso": "2026-07-13 13:42:55Z",
      "orig_sz": "0.01"
    }
  ]
}

For --dex and --all-dexes, orders intentionally uses the frontend-order reader so HIP-3 DEX identity is not lost. The row still preserves the basic automation aliases above (coin, side, limit_px, sz, oid, timestamp_iso, and orig_sz) and adds frontend/DEX metadata.

All-DEX example JSON output
bullpen hyperliquid orders --address 0x1111111111111111111111111111111111111111 --all-dexes --output json
{
  "schema_version": 1,
  "kind": "hyperliquid_frontend_orders_all_dex_report",
  "address": "0x1111111111111111111111111111111111111111",
  "all_dexes": true,
  "dex_scope": "all",
  "partial": false,
  "per_dex": [
    {
      "dex_id": "main",
      "label": "main",
      "status": "ok",
      "order_count": 1,
      "orders": [
        {
          "dex_id": "main",
          "coin": "BTC",
          "side": "B",
          "limit_px": "65000",
          "sz": "0.01",
          "oid": 123456789,
          "timestamp": 1779920575000,
          "timestamp_iso": "2026-07-13 13:42:55Z",
          "orig_sz": "0.01",
          "is_position_tpsl": false,
          "is_trigger": false,
          "order_type": "Limit",
          "reduce_only": false,
          "trigger_condition": "N/A",
          "trigger_px": "0.0"
        }
      ]
    }
  ],
  "orders": [
    {
      "dex_id": "main",
      "coin": "BTC",
      "side": "B",
      "limit_px": "65000",
      "sz": "0.01",
      "oid": 123456789,
      "timestamp": 1779920575000,
      "timestamp_iso": "2026-07-13 13:42:55Z",
      "orig_sz": "0.01",
      "is_position_tpsl": false,
      "is_trigger": false,
      "order_type": "Limit",
      "reduce_only": false,
      "trigger_condition": "N/A",
      "trigger_px": "0.0"
    }
  ]
}

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.