bullpen wallet list¶
Last updated: August 26, 2026
List all wallets and their accounts
Usage¶
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¶
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
{
"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.