Skip to content

bullpen solana sell

Last updated: July 13, 2026

Sell a Solana token for USDC via Jupiter Ultra

Usage

bullpen solana sell [OPTIONS] <MINT> <AMOUNT>

Live Help

Sell a Solana token for USDC via Jupiter Ultra

Usage: bullpen solana sell [OPTIONS] <MINT> <AMOUNT>

Arguments:
  <MINT>
          Input SPL token mint address

  <AMOUNT>
          Token amount to sell in token units for this mint; NOT USD

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

          [possible values: table, json]

      --slippage-bps <SLIPPAGE_BPS>
          Slippage tolerance in basis points

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

      --preview
          Show the Jupiter quote without signing or submitting the swap

      --skip-shield-check
          Skip JupiterShield token risk check (for automated/bot use)

      --retry-after-rate-limit
          Wait for Jupiter's rate-limit cooldown and retry once if the live submit is rate-limited before broadcast

      --i-know-what-im-doing
          Allow slippage above 500 bps

      --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:
  # Check balances before selling
  bullpen solana balance

  # Preview a BONK-to-USDC sell without signing or submitting
  bullpen solana sell DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263 1000 --preview

  # Export the sell preview as JSON
  bullpen solana sell DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263 1000 --preview --output json

Example Commands

bullpen solana balance
bullpen solana sell DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263 1000 --preview
bullpen solana sell DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263 1000 --preview --output json

JSON Output

Contract: JSON Output Contract.

Preview (--preview --output json)

Preview output is a single JSON document emitted only when --preview --output json is passed. Live submit output uses the Solana swap mutation-report schema instead.

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
action string no buy, sell, or swap for the previewed Jupiter Ultra route
input_mint string no Input SPL token mint address
input_symbol string yes Input token symbol when metadata is available
input_amount string no Decimal input amount in input-token units
input_amount_atomics integer no Raw input amount in token atomics
output_mint string no Output SPL token mint address
output_symbol string yes Output token symbol when metadata is available
output_amount string no Quoted decimal output amount
output_amount_atomics integer no Raw output amount in token atomics
effective_price_usd string yes Effective USD price when available
price_impact_pct string yes Estimated price impact percentage when available
slippage_bps integer no Slippage tolerance used for the quote
fees_lamports integer yes Estimated Solana fees in lamports when available
fixed_cost_lamports integer yes Estimated total fixed SOL costs in lamports when available
warning string yes Non-fatal quote warning when Jupiter reports one
referral_account_configured string yes Configured Solana referral account when present
referral_fee_bps_configured integer yes Configured Solana referral fee in basis points
shield_warnings array yes JupiterShield warnings when enabled; null when skipped or absent
request object no Jupiter Ultra quote request preview

Example

Example JSON output
bullpen solana sell DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263 1000 --preview --output json
{
  "action": "sell",
  "input_mint": "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263",
  "input_symbol": "BONK",
  "input_amount": "1000",
  "input_amount_atomics": 100000000,
  "output_mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
  "output_symbol": "USDC",
  "output_amount": "0.004009",
  "output_amount_atomics": 4009,
  "effective_price_usd": "200",
  "price_impact_pct": "0.12",
  "slippage_bps": 100,
  "fees_lamports": 5000,
  "fixed_cost_lamports": 10000,
  "warning": null,
  "referral_account_configured": null,
  "referral_fee_bps_configured": 0,
  "shield_warnings": null,
  "request": {
    "input_mint": "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263",
    "output_mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "amount_lamports": 100000000,
    "slippage_bps": 100,
    "swap_mode": "ExactIn"
  }
}

Live (--yes --output json)

Live output is a single JSON document after the transaction is submitted. success=true requires a confirmed Solana receipt. Balance readback is reported separately through readback_status.

key type nullable notes
kind string no solana_swap_result
success boolean no True only when receipt_status is confirmed
status string no Transaction receipt status: confirmed, timeout, unknown, or failed
signature string no Solana transaction signature
tx_signature string no Compatibility alias for signature
readback_status string no confirmed, readback_pending, readback_failed, or not_checked
receipt_status string or object no Solana receipt proof; failed receipts include a reason object
input_mint / output_mint string no Submitted input and output SPL token mints
input_amount / output_amount string no Decimal submitted input and quoted output amounts
post_swap_balance object yes Refreshed balance snapshot when available
post_swap_balance_warning string yes Readback warning when balance refresh lags or fails
post_swap_balance_next_action string yes Exact balance refresh command to run when readback lags or fails
post_swap_dust object yes Sub-cent residual input-token dust guidance after a sell or swap
Example live JSON output
bullpen solana sell DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263 1000 --yes --output json
{
  "kind": "solana_swap_result",
  "success": true,
  "status": "confirmed",
  "signature": "5WJ5c7dVn4yJmYw8cT9pP9Nqf9X4oMi4vMZL3a8f8CKiJx4CazQkJQf9QdZ8m4L3A3M7K1S4xGmQ3k8J2V6c9A1b",
  "tx_signature": "5WJ5c7dVn4yJmYw8cT9pP9Nqf9X4oMi4vMZL3a8f8CKiJx4CazQkJQf9QdZ8m4L3A3M7K1S4xGmQ3k8J2V6c9A1b",
  "readback_status": "readback_pending",
  "slot": 341234567,
  "receipt_status": "confirmed",
  "input_mint": "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263",
  "input_symbol": "BONK",
  "input_amount": "1000",
  "input_amount_atomics": 100000000,
  "output_mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
  "output_symbol": "USDC",
  "output_amount": "0.004009",
  "output_amount_atomics": 4009,
  "post_swap_balance_warning": null,
  "post_swap_balance_next_action": null,
  "post_swap_dust": null
}

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 Execution Notes

  • --preview fetches and prints the Jupiter quote without signing or submitting a transaction.
  • Confirmed swaps are submitted through the Bullpen TxService.SubmitV4 transaction service.
  • The preview path must not construct signing material or call the submit path.