bullpen hyperliquid spot twap create¶
Last updated: July 13, 2026
Create a spot TWAP order (requires hyperliquid_trading feature)
Usage¶
bullpen hyperliquid spot twap create [OPTIONS] --pair <PAIR> --side <SIDE> --base-size <BASE_SIZE> --minutes <MINUTES>
Live Help¶
Create a spot TWAP order (requires hyperliquid_trading feature)
Usage: bullpen hyperliquid spot twap create [OPTIONS] --pair <PAIR> --side <SIDE> --base-size <BASE_SIZE> --minutes <MINUTES>
Options:
--no-multi-wallet-warning
Suppress the table-mode warning shown when multiple EVM wallet accounts exist
--output <OUTPUT>
Output format for command results
[possible values: table, json]
--pair <PAIR>
Hyperliquid spot pair (for example, HYPE/USDC)
--env <ENV>
Target environment to connect to (overrides config.toml)
[env: BULLPEN_ENV=]
[possible values: staging, production]
--side <SIDE>
Spot TWAP side
Possible values:
- buy: Buy the base token with the quote token
- sell: Sell the base token for the quote token
--base-size <BASE_SIZE>
Total base-token size to execute across the TWAP, not USD notional
--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.
--minutes <MINUTES>
TWAP duration in minutes
--randomize
Ask Hyperliquid to randomize child-order timing
--subaccount <SUBACCOUNT>
Target a Hyperliquid subaccount execution context. Without --subaccount or --vault, the command targets the active EVM master account. Scoped submits still sign with the active EVM master wallet. Mutually exclusive with --vault
--read-only
Enable read-only mode: blocks all mutating commands
--vault <VAULT>
Target a Hyperliquid vault execution context. Without --subaccount or --vault, the command targets the active EVM master account. Scoped submits still sign with the active EVM master wallet. Mutually exclusive with --subaccount
--non-interactive
Suppress interactive prompts; does NOT imply --yes for money-moving commands
[env: BULLPEN_NON_INTERACTIVE=]
-y, --yes
Skip confirmation prompt
--preview
Resolve the pair and show the planned TWAP without signing or submitting
-h, --help
Print help (see a summary with '-h')
EXAMPLES:
# Preview a 15-minute HYPE/USDC spot buy TWAP without signing or submitting
bullpen hyperliquid spot twap create --pair HYPE/USDC --side buy --base-size 0.1 --minutes 15 --preview
# Export the spot TWAP preview as JSON
bullpen hyperliquid spot twap create --pair HYPE/USDC --side buy --base-size 0.1 --minutes 15 --preview --output json
SIZING:
--base-size is base-token size, not USD notional.
ACCOUNT SCOPE:
Without --subaccount or --vault, this targets the active EVM master account.
With --subaccount or --vault, Hyperliquid uses that execution context but
Bullpen still signs with the active EVM master wallet. Spot commands use
Hyperliquid's vaultAddress context field for scoped submits.
Example Commands¶
bullpen hyperliquid spot twap create --pair HYPE/USDC --side buy --base-size 0.1 --minutes 15 --preview
bullpen hyperliquid spot twap create --pair HYPE/USDC --side buy --base-size 0.1 --minutes 15 --preview --output json
JSON Output¶
Contract: JSON Output Contract.
Successful output is a single JSON document. The shape below is representative for this command family; commands may add fields without breaking the shared contract.
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 |
|---|---|---|---|
schema_version |
integer | yes | Mutation preview/report schema version when emitted |
kind |
string | yes | hyperliquid_mutation_preview for preview JSON |
action |
string | no | Hyperliquid action represented by the preview or live report |
account |
string | no | Active Hyperliquid master account that signs live submits |
scope |
string | yes | Human-readable account, subaccount, or vault execution context |
scope_kind |
string | yes | Stable scope classification such as primary, subaccount, or vault when emitted |
coin |
string | yes | Market symbol when the command targets a single market |
perp_dex |
string | yes | HIP-3 DEX id when the command is DEX-scoped |
instrument_id |
string | yes | Stable DEX-qualified instrument id when available |
would_submit |
boolean | yes | False in preview output |
signature_requested |
boolean | yes | False in preview output |
exchange_request_submitted |
boolean | yes | False in preview output |
summary |
string | yes | Human-readable preview/result summary |
intent |
object | yes | Structured action intent echoed for previews and some live reports |
limit_px |
string/decimal | yes | Effective live order limit price when emitted; stop-market entries use a slippage-padded trigger price |
trigger_px |
string/decimal | yes | Trigger price for stop-entry or trigger-style commands |
trigger_kind |
string | yes | Trigger direction such as entry-long or entry-short for stop-entry |
submitted_count |
integer | yes | Live report count for submitted exchange actions; null/absent in previews |
status_count |
integer | yes | Live report count for exchange statuses returned |
Example¶
Example JSON output
bullpen hyperliquid spot twap create --pair HYPE/USDC --side buy --base-size 0.1 --minutes 15 --preview --output json
{
"schema_version": 1,
"kind": "hyperliquid_mutation_preview",
"action": "spot-twap-create",
"account": "0x1111111111111111111111111111111111111111",
"scope": "primary 0x1111111111111111111111111111111111111111",
"scope_kind": "primary",
"coin": "HYPE/USDC",
"would_submit": false,
"signature_requested": false,
"exchange_request_submitted": false,
"summary": "Preview only - no signature requested and no Hyperliquid exchange request submitted.",
"intent": {
"action": "spot-twap-create",
"account": "0x1111111111111111111111111111111111111111",
"coin": "HYPE/USDC",
"reduce_only": false,
"builder_fee_bps": 0.0
},
"submitted_count": null,
"status_count": 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.