Skip to content

bullpen solana withdraw

Last updated: May 29, 2026

Withdraw SOL or an SPL token to a Solana address

Usage

bullpen solana withdraw [OPTIONS] <DESTINATION> <AMOUNT>

Live Help

Withdraw SOL or an SPL token to a Solana address

Usage: bullpen solana withdraw [OPTIONS] <DESTINATION> <AMOUNT>

Arguments:
  <DESTINATION>
          Destination Solana wallet address

  <AMOUNT>
          Amount to withdraw

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

          [possible values: table, json]

      --token <TOKEN>
          SPL token mint to withdraw. Omit for native SOL

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

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

      --yes
          Skip confirmation prompt

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

      --use-own-sol
          Skip the sponsored SPL transfer attempt and pay Solana network fees from your own SOL

      --i-know-this-token-is-not-supported-on-destination
          Bypass the CEX destination guard. Use only if you have verified the destination exchange supports the exact token you are sending on Solana

      --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:
  bullpen solana withdraw --help
      Show options for this command without signing, submitting, or changing state.

Example Commands

bullpen solana withdraw [OPTIONS] <DESTINATION> <AMOUNT>
bullpen solana withdraw --help
bullpen solana withdraw 8Y9xQeYxQeYxQeYxQeYxQeYxQeYxQeYxQeYxQeYxQeYx 10 --token EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v --use-own-sol --yes --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
preview object no Withdraw preview with source, destination, amount, token, atomics, network notes, and destination warning
tx_signature string no Submitted transaction signature
slot integer yes SubmitV4 slot when available
receipt_status string/object no confirmed, timeout, unknown, or failed status with reason
transfer_method string no native_sol, sponsored, manual_fallback, or manual_forced

Example

bullpen solana withdraw 8Y9xQeYxQeYxQeYxQeYxQeYxQeYxQeYxQeYxQeYxQeYx 10 --token EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v --use-own-sol --yes --output json
{
  "preview": {
    "source": "7qRkWTrM4DLpmeSnB8xT8p8mpqLQ9JdYatYczS4u1G8e",
    "destination": "8Y9xQeYxQeYxQeYxQeYxQeYxQeYxQeYxQeYxQeYxQeYx",
    "token_mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "token_symbol": null,
    "amount_display": "10 USDC",
    "amount_atomics": 10000000,
    "decimals": 6,
    "network_notes": [],
    "destination_warning": null
  },
  "tx_signature": "5n7y...",
  "slot": 123456789,
  "receipt_status": "confirmed",
  "transfer_method": "manual_forced"
}

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.

Solana Withdraw Notes

  • Native SOL withdraws are client-built and paid by the source wallet.
  • SPL withdraws try the sponsored transfer path first. When sponsorship is unavailable because the recipient needs an ATA, the recipient has never received the token, or the sponsored quota is exhausted, the CLI can retry with a user-paid SPL transfer after confirmation.
  • --use-own-sol skips the sponsor attempt for SPL withdraws and requires about 0.003 SOL in the source wallet for network fees and possible ATA rent.
  • Success JSON includes transfer_method: native_sol, sponsored, manual_fallback, or manual_forced.