Skip to content

bullpen hyperliquid topology

Last updated: July 13, 2026

Show account topology, including role, vaults, subaccounts, and extra agents

Usage

bullpen hyperliquid topology [OPTIONS]

Live Help

Show account topology, including role, vaults, subaccounts, and extra agents

Usage: bullpen hyperliquid topology [OPTIONS]

Options:
      --address <ADDRESS>
          Ethereum address to query. Defaults to the 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]

      --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 account topology for an address
  bullpen hyperliquid topology --address 0x1111111111111111111111111111111111111111

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

Example Commands

bullpen hyperliquid topology --address 0x1111111111111111111111111111111111111111
bullpen hyperliquid topology --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
queried_address string no Hyperliquid account address queried
signer_address string yes Authenticated signer address when the query is resolved from login state
role string no Account role, such as user, agent, sub-account, or vault
master string yes Master account address when the queried account is an agent/sub-account
agent_user string yes Agent user address when applicable
vault_equity_total string/decimal no Total equity across reported vault relationships
vaults array no Vault addresses and equity values
sub_accounts array no Sub-account summaries with perp and spot balances
extra_agents array no Extra agents with agent summary fields
extra_agents[].name string yes User-visible agent name when Hyperliquid returns one
extra_agents[].agent_kind string no named for named Bullpen-style rows, unnamed_or_external otherwise
extra_agents[].named boolean no True when the row has a non-empty agent name
extra_agents[].address string no Agent wallet address
extra_agents[].valid_until integer yes Raw Hyperliquid validity timestamp; zero means upstream did not provide a usable expiry
extra_agents[].valid_until_known boolean no False when valid_until is zero or missing
extra_agents[].valid_until_iso string yes ISO timestamp when validity is known
extra_agents[].valid_until_display string no Human-friendly validity display such as unknown or an ISO timestamp
extra_agents[].validity_status string no unknown, active, or expired

Example

Example JSON output
bullpen hyperliquid topology --address 0x1111111111111111111111111111111111111111 --output json
{
  "queried_address": "0x1111111111111111111111111111111111111111",
  "role": "user",
  "vault_equity_total": "125.5",
  "sub_account_perp_account_value_total": "0",
  "sub_account_spot_usdc_total": "0",
  "vaults": [
    {
      "vault_address": "0x2222222222222222222222222222222222222222",
      "equity": "125.5"
    }
  ],
  "sub_accounts": [],
  "extra_agents": [
    {
      "name": "bot1",
      "agent_kind": "named",
      "named": true,
      "address": "0x3333333333333333333333333333333333333333",
      "valid_until": 0,
      "valid_until_known": false,
      "valid_until_display": "unknown",
      "validity_status": "unknown"
    }
  ]
}

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.