Skip to content

bullpen wallet import

Last updated: July 13, 2026

Import an external wallet private key into Turnkey custody.

Usage

bullpen wallet import [OPTIONS] --chain <CHAIN>

Live Help

Import an external wallet private key into Turnkey custody.

If Bullpen account services reject auth after the signed import request is submitted, Bullpen does not refresh and replay the request. Inspect the USERGATE_AUTH_REJECTED_NO_REPLAY JSON fields and confirm account state before retrying manually.

Usage: bullpen wallet import [OPTIONS] --chain <CHAIN>

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

          [possible values: table, json]

      --private-key <PRIVATE_KEY>
          Private key material. Use hex for EVM, base58 for Solana. Omit this flag to enter the key interactively without echo

      --chain <CHAIN>
          Import target chain/account type

          [possible values: evm, solana]

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

      --nickname <NICKNAME>
          Optional display name for the imported wallet

  -y, --yes
          Skip confirmation prompt

      --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:
  # Start a prompted EVM private-key import; this adds custody key material
  bullpen wallet import --chain evm --nickname imported-eoa

  # Start a prompted Solana private-key import; this adds custody key material
  bullpen wallet import --chain solana --nickname imported-solana

  # Export the prompted import result as JSON
  bullpen wallet import --chain evm --nickname imported-eoa --output json

Example Commands

bullpen wallet import --chain evm --nickname imported-eoa
bullpen wallet import --chain solana --nickname imported-solana
bullpen wallet import --chain evm --nickname imported-eoa --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
status string no imported after Turnkey accepts the imported private key
chain string no Imported account type, such as EVM or Solana
nickname string yes Optional display name assigned to the imported wallet
imported_address string yes Derived EVM address for EVM imports
polymarket_signer_routing object yes EVM import routing preservation status for Polymarket signer selection
legacy_safe_pusd_warning object yes Warning emitted when orphaned pUSD is detected on a legacy Safe

Example

bullpen wallet import --chain evm --nickname imported-eoa --output json
{
  "status": "imported",
  "chain": "EVM",
  "nickname": "imported-eoa",
  "imported_address": "0x1111111111111111111111111111111111111111",
  "polymarket_signer_routing": {
    "previous_signer": "0x2222222222222222222222222222222222222222",
    "restored": true,
    "selected_external_after_import": null,
    "requires_wallet_select": 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.