Skip to content

bullpen wallet list

Last updated: August 26, 2026

List all wallets and their accounts

Usage

bullpen wallet list [OPTIONS]

Live Help

List all wallets and their accounts

Usage: bullpen wallet list [OPTIONS]

Options:
      --output <OUTPUT>
          Output format for command results

          [possible values: table, json]

      --type <TYPE>
          Filter by wallet type (turnkey, external, internal, contract_wallet, sub_account)

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

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

      --role <ROLE>
          Filter by wallet role (trading, routing)

      --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.

      --snapshots <SNAPSHOTS>
          Take N snapshots and diff is_selected across them (default: 1 = no diff). When N > 1, sleeps --interval seconds between calls and writes an artifact to ~/.bullpen/log/support/wallet-multi-eoa-snapshot-<ts>.json

          [default: 1]

      --interval <INTERVAL>
          Seconds to sleep between snapshots (used with --snapshots > 1)

          [default: 5]

      --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:
  # List wallet accounts without changing the active wallet
  bullpen wallet list

  # Export wallet accounts as JSON
  bullpen wallet list --output json

Example Commands

bullpen wallet list
bullpen wallet list --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
wallets array no Wallet groups and their chain accounts
wallets[].accounts[].capabilities object yes Capability boundary emitted only for imported external EVM accounts
wallets[].accounts[].capabilities.reason_code string no Stable reason code explaining why an imported external EVM account is visibility-only
wallets[].accounts[].capabilities.visibility boolean no Whether the account can appear in wallet reads
wallets[].accounts[].capabilities.managed_transfer boolean no Whether Bullpen can sign managed transfers for the account
wallets[].accounts[].capabilities.ownership_proven_recovery boolean no Whether Bullpen can prove ownership for managed recovery
wallets[].accounts[].capabilities.managed_trading boolean no Whether Bullpen can sign managed trades for the account
wallets[].accounts[].capabilities.primary_selection boolean no Whether the account can become the primary Bullpen-managed EVM wallet

Example

Example JSON output
bullpen wallet list --output json
{
  "wallets": [
    {
      "id": "wallet_external_example",
      "name": "Imported Wallet",
      "wallet_type": "external",
      "role": "trading",
      "accounts": [
        {
          "address": "0x1111111111111111111111111111111111111111",
          "account_type": "external",
          "nickname": "Research Wallet",
          "hidden": false,
          "is_proxy": false,
          "chains": [
            {
              "chain": "polygon",
              "selected": false
            }
          ],
          "capabilities": {
            "reason_code": "imported_external_evm_not_managed_signer",
            "visibility": true,
            "managed_transfer": false,
            "ownership_proven_recovery": false,
            "managed_trading": false,
            "primary_selection": false
          }
        }
      ]
    }
  ]
}

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.