bullpen hyperliquid topology¶
Last updated: July 13, 2026
Show account topology, including role, vaults, subaccounts, and extra agents
Usage¶
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
{
"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.