bullpen solana dca cancel¶
Last updated: July 13, 2026
Cancel a Jupiter Recurring DCA schedule
Usage¶
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¶
{
"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¶
--previewcalls Jupiter RecurringcancelOrderto fetch an unsigned transaction without Turnkey signing or/execute; it does not sign or submit.- Live cancel requires confirmation or
--yes.BULLPEN_NON_INTERACTIVEalone returnsCONFIRMATION_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 jsonbefore relying on returned funds. Plainbalancecan 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_PENDINGwithretry_after_secsandnext_command; wait before retrying and checkdca list --all --output jsonbefore creating another schedule.