Skip to content

bullpen solana dca cancel

Last updated: July 13, 2026

Cancel a Jupiter Recurring DCA schedule

Usage

bullpen solana dca cancel [OPTIONS] <ORDER_KEY>

Live Help

Cancel a Jupiter Recurring DCA schedule

Usage: bullpen solana dca cancel [OPTIONS] <ORDER_KEY>

Arguments:
  <ORDER_KEY>
          Jupiter Recurring order account/key to cancel

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

          [possible values: table, json]

      --yes
          Skip confirmation prompt

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

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

      --preview
          Build and display the unsigned cancel transaction without signing or executing

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

      --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:
  # Review active DCA schedules before canceling
  bullpen solana dca list --status active

  # Preview canceling one DCA schedule without signing or submitting
  bullpen solana dca cancel 7nE9GJoYHNmtaQvTQpota3KV2oz4pQ2dA6nvYK8EUJHV --preview

  # Export the DCA cancel preview as JSON
  bullpen solana dca cancel 7nE9GJoYHNmtaQvTQpota3KV2oz4pQ2dA6nvYK8EUJHV --preview --output json

Example Commands

bullpen solana dca list --status active
bullpen solana dca cancel 7nE9GJoYHNmtaQvTQpota3KV2oz4pQ2dA6nvYK8EUJHV --preview
bullpen solana dca cancel 7nE9GJoYHNmtaQvTQpota3KV2oz4pQ2dA6nvYK8EUJHV --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 corresponding Solana Recurring 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 dca_cancel for previews
order_key string no Jupiter Recurring order key to cancel
user string no Bullpen Solana wallet used for the Recurring cancel request
request object no Jupiter Recurring cancelOrder request preview
unsigned_transaction object no Present for --preview; includes Jupiter request id and unsigned transaction

Example

bullpen solana dca cancel 7nE9GJoYHNmtaQvTQpota3KV2oz4pQ2dA6nvYK8EUJHV --preview --output json
{
  "action": "dca_cancel",
  "order_key": "7nE9GJoYHNmtaQvTQpota3KV2oz4pQ2dA6nvYK8EUJHV",
  "user": "7qRkWTrM4DLpmeSnB8xT8p8mpqLQ9JdYatYczS4u1G8e",
  "request": {
    "user": "7qRkWTrM4DLpmeSnB8xT8p8mpqLQ9JdYatYczS4u1G8e",
    "order": "7nE9GJoYHNmtaQvTQpota3KV2oz4pQ2dA6nvYK8EUJHV",
    "recurringType": "time"
  },
  "unsigned_transaction": {
    "request_id": "dca-cancel-request-1",
    "transaction": "base64-unsigned-transaction"
  }
}

Live Submit (--yes --output json)

Live submit output is a single JSON document emitted after confirmation or --yes. It signs the Jupiter Recurring cancel transaction, submits it through Bullpen TxService.SubmitV4, and includes the receipt status observed by Solana RPC.

Live Top-level Keys

key type nullable notes
action string no dca_cancel
order_key string no Jupiter Recurring order key cancelled
user string no Bullpen Solana wallet used for the cancel
request_id string no Jupiter Recurring cancel request id
signature string no Solana transaction signature submitted through Bullpen account services
tx_signature string no Alias of signature for automation
status string no Submit status returned by Bullpen account services
receipt_status string/object no confirmed, timeout, unknown, or { "status": "failed", "reason": "..." }
readback_status string no refresh_recommended after confirmed cancels
balance_refresh_recommended boolean no true after submitted cancels
next_command string no bullpen solana balance --refresh --output json

Live Example

{
  "action": "dca_cancel",
  "order_key": "7nE9GJoYHNmtaQvTQpota3KV2oz4pQ2dA6nvYK8EUJHV",
  "user": "7qRkWTrM4DLpmeSnB8xT8p8mpqLQ9JdYatYczS4u1G8e",
  "request_id": "dca-cancel-request-1",
  "signature": "3zUYh2mJ2QaF9x7Qv5bYk2wFqVQTwZx3qG4oZk6Gm1J9ABx6dD7xVz2yB4mE3cT7s9QeN1rP5aK2mY8hJ6nC4dL",
  "tx_signature": "3zUYh2mJ2QaF9x7Qv5bYk2wFqVQTwZx3qG4oZk6Gm1J9ABx6dD7xVz2yB4mE3cT7s9QeN1rP5aK2mY8hJ6nC4dL",
  "status": "submitted",
  "receipt_status": "confirmed",
  "readback_status": "refresh_recommended",
  "balance_refresh_recommended": true,
  "stale_balance_risk": "cached_balance_may_lag_after_cancel",
  "next_command": "bullpen solana balance --refresh --output json",
  "next_commands": [
    "bullpen solana balance --refresh --output json",
    "bullpen solana portfolio --refresh --output json"
  ]
}

Indexing Window Response

If Jupiter accepts a new DCA schedule before its Recurring index can cancel it, --yes --output json returns a typed retryable error instead of exposing a raw provider not-found response. The command exits nonzero because no cancel transaction was submitted.

{
  "ok": false,
  "status": "error",
  "state": "pending_index",
  "code": "SOLANA_DCA_INDEX_PENDING",
  "error_code": "SOLANA_DCA_INDEX_PENDING",
  "class": "provider_indexing_pending",
  "root_cause_class": "jupiter_recurring_indexing_window_or_absent_order",
  "provider": "jupiter",
  "provider_component": "recurring",
  "http_status": 404,
  "provider_message": "not found",
  "error": "Jupiter Recurring has not indexed this DCA order yet, so cancel was not submitted.",
  "message": "Jupiter Recurring has not indexed this DCA order yet, so cancel was not submitted.",
  "order_key": "7nE9GJoYHNmtaQvTQpota3KV2oz4pQ2dA6nvYK8EUJHV",
  "index_status": "pending_index",
  "retryable": true,
  "retry_after_secs": 30,
  "next_command": "bullpen solana dca cancel 7nE9GJoYHNmtaQvTQpota3KV2oz4pQ2dA6nvYK8EUJHV --yes --output json",
  "diagnostic_commands": [
    "bullpen solana dca list --all --output json"
  ],
  "support_safe": true
}

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

  • --preview calls Jupiter Recurring cancelOrder to fetch an unsigned transaction without Turnkey signing or /execute; it does not sign or submit.
  • Live cancel requires confirmation or --yes. BULLPEN_NON_INTERACTIVE alone returns CONFIRMATION_REQUIRED.
  • Live cancel signs the returned Jupiter Recurring transaction, submits it through Bullpen TxService.SubmitV4, and verifies the resulting Solana receipt when RPC status is available.
  • After a live cancel, run bullpen solana balance --refresh --output json before relying on returned funds. Plain balance can briefly show cached balances while Jupiter and Bullpen indexing catch up.
  • Immediately after live create, Jupiter Recurring can return not-found while the schedule is still indexing. In JSON mode, the CLI reports SOLANA_DCA_INDEX_PENDING with retry_after_secs and next_command; wait before retrying and check dca list --all --output json before creating another schedule.