Skip to content

bullpen solana limit-buy

Last updated: July 13, 2026

Place a Jupiter Trigger limit buy for a Solana token with USDC

Usage

bullpen solana limit-buy [OPTIONS] --price <PRICE> <MINT> <USD_AMOUNT>

Live Help

Place a Jupiter Trigger limit buy for a Solana token with USDC

Usage: bullpen solana limit-buy [OPTIONS] --price <PRICE> <MINT> <USD_AMOUNT>

Arguments:
  <MINT>
          Output SPL token mint address

  <USD_AMOUNT>
          USD/USDC amount to spend when the limit order fills

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

          [possible values: table, json]

      --price <PRICE>
          Limit price in USD per output token

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

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

      --expiry <EXPIRY>
          Expiry duration such as 1h, 24h, 7d, or never. Default is never

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

      --yes
          Skip confirmation prompt

      --preview
          Show the Trigger order request without signing or submitting

      --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:
  # Preview a Trigger limit buy without signing or submitting
  bullpen solana limit-buy DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263 50 --price 0.00003 --expiry 24h --preview

  # Export the Trigger limit-buy preview as JSON
  bullpen solana limit-buy DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263 50 --price 0.00003 --expiry 24h --preview --output json

  # Submit a confirmed Trigger limit buy after reviewing the preview
  bullpen solana limit-buy DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263 50 --price 0.00003 --expiry 24h --yes

Example Commands

bullpen solana limit-buy DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263 50 --price 0.00003 --expiry 24h --preview
bullpen solana limit-buy DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263 50 --price 0.00003 --expiry 24h --preview --output json
bullpen solana limit-buy DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263 50 --price 0.00003 --expiry 24h --yes

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 Trigger 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 limit_buy or limit_sell
side string no buy or sell
maker string no Bullpen Solana wallet used as the Trigger maker
payer string no Bullpen Solana wallet used as the transaction payer
input object no Input mint, symbol, decimal amount, and atomics
output object no Output mint, symbol, decimal amount, and atomics
price_usd string no Limit price in USD per token
expires_at integer yes Unix expiry timestamp, omitted/null for never
request object no Jupiter Trigger createOrder request preview

Example

Example JSON output
bullpen solana limit-buy DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263 50 --price 0.00003 --expiry 24h --preview --output json
{
  "action": "limit_buy",
  "side": "buy",
  "maker": "7qRkWTrM4DLpmeSnB8xT8p8mpqLQ9JdYatYczS4u1G8e",
  "payer": "7qRkWTrM4DLpmeSnB8xT8p8mpqLQ9JdYatYczS4u1G8e",
  "input": {
    "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "symbol": "USDC",
    "amount": "50",
    "amount_atomics": 50000000
  },
  "output": {
    "mint": "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263",
    "symbol": "BONK",
    "amount": "1666666.66666",
    "amount_atomics": 166666666666
  },
  "price_usd": "0.00003",
  "expires_at": 1780000000,
  "request": {
    "maker": "7qRkWTrM4DLpmeSnB8xT8p8mpqLQ9JdYatYczS4u1G8e",
    "payer": "7qRkWTrM4DLpmeSnB8xT8p8mpqLQ9JdYatYczS4u1G8e",
    "inputMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "outputMint": "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263",
    "params": {
      "makingAmount": "50000000",
      "takingAmount": "166666666666",
      "expiredAt": 1780000000
    }
  }
}

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

  • --preview builds the Jupiter Trigger create-order request without Turnkey signing, Jupiter /execute, or TxService.SubmitV4 submission.
  • The CLI implements exact Trigger orders and intentionally does not expose a Solana limit-order --slippage-bps flag.
  • Limit orders do not run JupiterShield and do not expose --skip-shield-check.
  • Trigger referral fees are not currently forwarded. Trigger uses an output-mint feeAccount plus params.feeBps; the CLI does not reuse Ultra referralAccount / referralFee settings for limit orders.
  • Live create submits the signed transaction through Jupiter Trigger /trigger/v1/execute after confirmation.