bullpen solana dca create¶
Last updated: May 29, 2026
Create a Jupiter Recurring DCA schedule
Usage¶
bullpen solana dca create [OPTIONS] --per-cycle <PER_CYCLE> --cycles <CYCLES> --interval <INTERVAL> <INPUT_MINT> <OUTPUT_MINT>
Live Help¶
Create a Jupiter Recurring DCA schedule
Usage: bullpen solana dca create [OPTIONS] --per-cycle <PER_CYCLE> --cycles <CYCLES> --interval <INTERVAL> <INPUT_MINT> <OUTPUT_MINT>
Arguments:
<INPUT_MINT>
Input SPL token mint address
<OUTPUT_MINT>
Output SPL token mint address
Options:
--output <OUTPUT>
Output format for command results
[possible values: table, json]
--per-cycle <PER_CYCLE>
Input token amount per cycle, in input-token units
--cycles <CYCLES>
Number of DCA cycles
--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.
--interval <INTERVAL>
Interval between cycles, such as 30m, 6h, 1d, 1w, or 2mo
--yes
Skip confirmation prompt
--preview
Build and display the unsigned Jupiter Recurring transaction without signing or executing
--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 dca create --help
Show options for this command without signing, submitting, or changing state.
Example Commands¶
bullpen solana dca create [OPTIONS] --per-cycle <PER_CYCLE> --cycles <CYCLES> --interval <INTERVAL> <INPUT_MINT> <OUTPUT_MINT>
bullpen solana dca create --help
bullpen solana dca create EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v So11111111111111111111111111111111111111112 --per-cycle 50 --cycles 4 --interval 1d --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_create |
user |
string | no | Bullpen Solana wallet used for the Recurring order |
input |
object | no | Input mint, symbol, per-cycle decimal amount, and atomics |
output_mint |
string | no | Output SPL token mint |
output_symbol |
string | yes | Output symbol when metadata is available |
number_of_orders |
integer | no | Number of DCA cycles |
interval_seconds |
integer | no | Seconds between cycles |
total_in_amount |
string/decimal | no | Total input deposited across all cycles |
request |
object | no | Jupiter Recurring createOrder request preview |
unsigned_transaction |
object | no | Present for --preview; includes Jupiter request id and unsigned transaction |
Example¶
bullpen solana dca create EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v So11111111111111111111111111111111111111112 --per-cycle 50 --cycles 4 --interval 1d --preview --output json
{
"action": "dca_create",
"user": "7qRkWTrM4DLpmeSnB8xT8p8mpqLQ9JdYatYczS4u1G8e",
"input": {
"mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"symbol": "USDC",
"amount": "50",
"amount_atomics": 50000000
},
"output_mint": "So11111111111111111111111111111111111111112",
"output_symbol": "SOL",
"number_of_orders": 4,
"interval_seconds": 86400,
"interval_display": "1 day",
"total_in_amount": "200",
"total_in_amount_atomics": 200000000,
"referral_account_configured": false,
"referral_fee_bps_configured": 0,
"request": {
"user": "7qRkWTrM4DLpmeSnB8xT8p8mpqLQ9JdYatYczS4u1G8e",
"inputMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"outputMint": "So11111111111111111111111111111111111111112",
"params": {
"time": {
"inAmount": 200000000,
"numberOfOrders": 4,
"interval": 86400
}
}
},
"unsigned_transaction": {
"request_id": "dca-create-request-1",
"transaction": "base64-unsigned-transaction"
}
}
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 RecurringcreateOrderto fetch an unsigned transaction without Turnkey signing or/execute; it does not sign or submit.- Live create requires confirmation or
--yes.BULLPEN_NON_INTERACTIVEalone returnsCONFIRMATION_REQUIRED. --per-cycleis in input-token units. The Jupiter request sends total deposited input asparams.time.inAmount = per_cycle * cycles.- The CLI enforces the mini-app DCA bounds: interval at least 60 seconds, cycles between 2 and 1000, and a best-effort $50 per-cycle minimum when input price is known.
- Jupiter Recurring does not currently expose the Jupiter Ultra referral fields; configured Bullpen referral settings are reported but not forwarded.