Open Broker

v1.0.39

Hyperliquid trading CLI. Execute orders, manage positions, and run trading strategies on Hyperliquid DEX.

Installation

Terminal
npm install -g openbroker

Quick Start

1

Setup

Generates wallet, creates config, and approves builder fee — all in one command.

openbroker setup
2

Fund your wallet

Send USDC on Arbitrum to your wallet, then deposit at app.hyperliquid.xyz

3

Start trading

openbroker account                          # View account info
openbroker buy --coin ETH --size 0.1        # Market buy
openbroker search --query GOLD              # Find markets

Commands

Setup

Interactive one-command setup that handles wallet creation, config, and builder fee approval.

openbroker setup

The setup wizard:

  • Generates a new wallet or accepts your existing private key
  • Saves configuration to ~/.openbroker/.env (permissions 0600)
  • Automatically approves the builder fee for trading

Account Info

View your balance, equity, margin, positions, and open orders.

openbroker account              # Balance, equity, margin, positions
openbroker account --orders     # Also show open orders
FlagDescriptionDefault
--ordersInclude open orders in the output

Positions

Detailed position view with entry/mark prices, PnL, leverage, liquidation distance, and margin used.

openbroker positions             # All open positions
openbroker positions --coin ETH  # Single position detail
FlagDescriptionDefault
--coinFilter to a single asset

Funding Rates

openbroker funding              # Top 20 by annualized rate
openbroker funding --top 50     # Top 50
openbroker funding --coin ETH   # Single asset
openbroker funding --sort oi    # Sort by open interest
FlagDescriptionDefault
--topNumber of results to show20
--coinFilter to a single asset
--sortSort by: annualized, hourly, or oiannualized
--allShow all assets including low OI

Markets

Market data for perpetuals. Pass --coin for a detailed single-asset view with oracle price, min size, and more.

openbroker markets              # Top 30 perps by volume
openbroker markets --coin ETH   # Detailed view for ETH
openbroker markets --sort change --top 10  # Top movers
FlagDescriptionDefault
--coinDetailed view for a single asset
--topNumber of results30
--sortSort by: volume, oi, or changevolume

All Markets

Browse all available markets across main perps, HIP-3 perps, and spot — grouped by type.

openbroker all-markets                # Everything
openbroker all-markets --type perp    # Main perps only
openbroker all-markets --type hip3    # HIP-3 perps only
openbroker all-markets --type spot    # Spot only
openbroker all-markets --top 20       # Top 20 by volume
FlagDescriptionDefault
--typeFilter: perp, spot, hip3, or allall
--topLimit to top N by volume
--verboseShow detailed output

Search Markets

Search for assets by name across all providers (perps, HIP-3, spot). Shows funding comparison when an asset is listed on multiple venues.

openbroker search --query GOLD             # Find all GOLD markets
openbroker search --query ETH --type perp  # ETH perps only
openbroker search --query PURR --type spot # PURR spot only
FlagDescriptionDefault
--querySearch term (matches coin name)required
--typeFilter: perp, spot, hip3, or allall
--verboseShow detailed output

Spot

openbroker spot                  # All spot markets
openbroker spot --balances       # Your spot token balances
openbroker spot --coin PURR      # Filter by coin
openbroker spot --top 20         # Top 20 by volume
FlagDescriptionDefault
--balancesShow your spot token balances instead of markets
--coinFilter by coin symbol
--topLimit to top N by volume
--verboseShow token metadata

Market Orders

Execute market buy/sell with slippage protection. The buy and sell commands are shortcuts that set --side automatically.

openbroker buy --coin ETH --size 0.1
openbroker sell --coin BTC --size 0.01
openbroker buy --coin SOL --size 10 --slippage 100 --dry
FlagDescriptionDefault
--coinAsset to trade (ETH, BTC, SOL, HYPE, etc.)required
--sideOrder direction: buy or sell (auto-set by buy/sell command)required
--sizeOrder size in base assetrequired
--slippageSlippage tolerance in bps (basis points)50 (0.5%)
--reduceReduce-only order (won't increase position)false
--dryPreview order details without executing
--verboseShow full API request/response

Limit Orders

Place a limit order at a specific price. Supports three time-in-force modes.

openbroker limit --coin ETH --side buy --size 1 --price 3000
openbroker limit --coin BTC --side sell --size 0.1 --price 100000 --tif ALO
openbroker limit --coin SOL --side buy --size 10 --price 150 --reduce
FlagDescriptionDefault
--coinAsset to traderequired
--sideOrder direction: buy or sellrequired
--sizeOrder size in base assetrequired
--priceLimit pricerequired
--tifTime in force: GTC (rests on book), IOC (fill or cancel), ALO (post-only, maker only)GTC
--reduceReduce-only orderfalse
--dryPreview without executing

Trigger Orders

Place conditional orders that activate when price reaches a trigger level. Used for stop losses, take profits, and conditional entries.

Take profit: sell HYPE when price rises to $40
openbroker trigger --coin HYPE --side sell --size 0.5 --trigger 40 --type tp
Stop loss: sell HYPE when price drops to $30
openbroker trigger --coin HYPE --side sell --size 0.5 --trigger 30 --type sl
Buy stop: buy BTC on breakout above $75k
openbroker trigger --coin BTC --side buy --size 0.01 --trigger 75000 --type sl --reduce false
FlagDescriptionDefault
--coinAsset to traderequired
--sideOrder side when triggered: buy or sellrequired
--sizeOrder size in base assetrequired
--triggerTrigger price (order activates at this level)required
--typeOrder type: tp (take profit) or sl (stop loss)required
--limitCustom limit price when triggered (overrides default)auto
--slippageSlippage for stop loss limit price in bps100 (1%)
--reduceReduce-only ordertrue
--dryPreview without placing
--verboseShow debug output

TP/SL on Existing Position

Attach take-profit and/or stop-loss trigger orders to an open position. Supports absolute prices, percentage offsets from entry, and breakeven stops.

openbroker tpsl --coin HYPE --tp 40 --sl 30          # Absolute prices
openbroker tpsl --coin ETH --tp +10% --sl -5%        # Percentage from entry
openbroker tpsl --coin HYPE --tp +10% --sl entry      # TP at +10%, SL at entry (breakeven)
openbroker tpsl --coin ETH --sl -5%                   # Stop loss only
openbroker tpsl --coin ETH --tp 4000 --sl 3500 --size 0.5  # Partial position
FlagDescriptionDefault
--coinAsset with an open positionrequired
--tpTake profit price: absolute ($40), percentage (+10%), or "entry"
--slStop loss price: absolute ($30), percentage (-5%), or "entry"
--sizeSize to protect (partial TP/SL)full position
--sl-slippageStop loss slippage buffer in bps100 (1%)
--dryPreview orders without placing
--verboseShow debug output

Shows risk/reward ratio, potential profit/loss, and current unrealized PnL before placing orders.

Cancel Orders

openbroker cancel --all                    # Cancel all open orders
openbroker cancel --coin ETH               # Cancel all ETH orders
openbroker cancel --coin ETH --oid 123456  # Cancel specific order
openbroker cancel --all --dry              # Preview what would be cancelled
FlagDescriptionDefault
--coinCancel orders for a specific coin only
--oidCancel a specific order by ID
--allCancel all open orders
--dryShow orders without cancelling

Advanced Execution

TWAP

Time-Weighted Average Price execution. Splits a large order into smaller slices executed at regular intervals to minimize market impact.

# Buy 1 ETH over 1 hour (auto-calculates ~12 slices, every 5 min)
openbroker twap --coin ETH --side buy --size 1 --duration 3600

# Sell 0.5 BTC over 30 min with 6 slices and timing randomization
openbroker twap --coin BTC --side sell --size 0.5 --duration 1800 --intervals 6 --randomize 20

# Preview execution plan
openbroker twap --coin ETH --side buy --size 2 --duration 7200 --dry
FlagDescriptionDefault
--coinAsset to traderequired
--sidebuy or sellrequired
--sizeTotal order size in base assetrequired
--durationTotal execution time in secondsrequired
--intervalsNumber of slices1 per 5 min
--randomizeRandomize timing by ±X percent0
--slippageSlippage tolerance per slice in bps50
--dryShow execution plan without trading
--verboseShow debug output

Reports VWAP, actual slippage vs start price, fill rate per slice, and total execution time.

Scale

Place a grid of limit orders to scale into or out of a position. Supports three size distribution modes for different strategies.

# Scale into 1 ETH with 5 buy orders spread 2% below mid
openbroker scale --coin ETH --side buy --size 1 --levels 5 --range 2

# Scale out with exponential distribution (more size at better prices)
openbroker scale --coin ETH --side buy --size 2 --levels 8 --range 5 --distribution exponential

# Scale out of BTC position (reduce-only)
openbroker scale --coin BTC --side sell --size 0.5 --levels 4 --range 3 --reduce
FlagDescriptionDefault
--coinAsset to traderequired
--sidebuy or sellrequired
--sizeTotal order size in base assetrequired
--levelsNumber of price levels (orders)required
--rangePrice range from current mid in %required
--distributionSize distribution: linear (more at better prices), exponential (much more at better prices), or flat (equal)linear
--tifTime in force: GTC or ALOGTC
--reduceReduce-only orders (for scaling out)false
--dryShow order grid without placing
--verboseShow debug output

Bracket

Complete trade setup in one command: entry order with automatic take-profit and stop-loss. Supports market or limit entry.

# Long ETH with 3% TP and 1.5% SL (market entry)
openbroker bracket --coin ETH --side buy --size 0.5 --tp 3 --sl 1.5

# Short BTC with limit entry at $100k, 5% TP, 2% SL
openbroker bracket --coin BTC --side sell --size 0.1 --entry limit --price 100000 --tp 5 --sl 2

# Preview bracket setup
openbroker bracket --coin SOL --side buy --size 10 --tp 5 --sl 2 --dry
FlagDescriptionDefault
--coinAsset to traderequired
--sideEntry direction: buy (long) or sell (short)required
--sizePosition size in base assetrequired
--tpTake profit distance in % from entryrequired
--slStop loss distance in % from entryrequired
--entryEntry type: market or limitmarket
--priceEntry price (required if --entry limit)
--slippageSlippage for market entry in bps50
--dryShow bracket plan without executing
--verboseShow debug output

Shows risk/reward ratio, potential profit/loss, and executes in 3 steps: entry → TP trigger → SL trigger. TP and SL are placed as trigger orders that only execute when price reaches the target.

Chase

Follow the price with ALO (post-only) limit orders to get maker fills and avoid taker fees. Continuously adjusts the order to stay near the best price.

# Chase buy 0.5 ETH (default: 5 bps offset, 5 min timeout)
openbroker chase --coin ETH --side buy --size 0.5

# Aggressive chase: tighter offset, short timeout, strict max chase
openbroker chase --coin SOL --side buy --size 10 --offset 1 --timeout 60 --max-chase 50

# Wider offset, longer timeout
openbroker chase --coin BTC --side sell --size 0.1 --offset 2 --timeout 600
FlagDescriptionDefault
--coinAsset to traderequired
--sidebuy or sellrequired
--sizeOrder size in base assetrequired
--offsetOffset from mid price in bps5 (0.05%)
--timeoutMax time to chase in seconds300 (5 min)
--intervalPrice check / order update interval in ms2000
--max-chaseMax price to chase to in bps from start price100 (1%)
--reduceReduce-only order
--dryShow chase parameters without executing
--verboseShow debug output

Uses ALO orders exclusively, guaranteeing maker rebates. Cancels and replaces the order each time price moves, and stops when filled, timed out, or max chase distance is reached.

Strategies

Funding Arbitrage

Collect funding payments by taking positions opposite to the majority. When funding is positive (longs pay shorts), go short to collect — and vice versa. Monitors funding continuously and can auto-close when rates drop.

# Enter $5000 short if ETH funding > 25% annualized
openbroker funding-arb --coin ETH --size 5000 --min-funding 25

# Run for 24 hours, check every 30 minutes
openbroker funding-arb --coin BTC --size 10000 --duration 24 --check 30

# Preview current opportunity
openbroker funding-arb --coin ETH --size 5000 --dry
FlagDescriptionDefault
--coinAsset to traderequired
--sizePosition size in USD notionalrequired
--min-fundingMinimum annualized funding rate to enter (%)20
--max-fundingMaximum rate — avoid extreme/squeeze risk (%)200
--durationHow long to run in hours
--checkFunding check interval in minutes60
--close-atClose position when funding drops below X%5
--modeperp (directional) or hedge (delta neutral — not yet implemented)perp
--dryShow opportunity analysis without trading
--verboseShow debug output

Note: Hyperliquid funding is paid hourly (not 8h like CEXs). Annualized = hourly rate × 8,760.

Grid Trading

Automatically buy low and sell high within a defined price range. Places a grid of limit orders and replaces filled orders on the opposite side for continuous range trading.

# ETH grid $3000-$4000, 10 levels, 0.1 per level
openbroker grid --coin ETH --lower 3000 --upper 4000 --grids 10 --size 0.1

# BTC accumulation grid (buys only)
openbroker grid --coin BTC --lower 90000 --upper 100000 --grids 5 --size 0.01 --mode long

# Preview grid
openbroker grid --coin ETH --lower 3000 --upper 4000 --grids 10 --size 0.1 --dry
FlagDescriptionDefault
--coinAsset to traderequired
--lowerLower bound of grid (price)required
--upperUpper bound of grid (price)required
--gridsNumber of grid levels10
--sizeSize per grid level in base asset
--total-sizeOR total size to distribute across grids
--modeneutral (buy+sell), long (buys only), short (sells only)neutral
--refreshRebalance interval in seconds60
--durationHow long to run in hours
--dryShow grid plan without placing orders
--verboseShow debug output

DCA (Dollar Cost Averaging)

Accumulate a position over time with regular purchases at fixed USD amounts. Supports flexible interval formats.

# Buy $100 of ETH every hour for 24 purchases
openbroker dca --coin ETH --amount 100 --interval 1h --count 24

# Invest $5000 in BTC over 30 daily purchases
openbroker dca --coin BTC --total 5000 --interval 1d --count 30

# Preview DCA plan
openbroker dca --coin SOL --amount 50 --interval 4h --count 42 --dry
FlagDescriptionDefault
--coinAsset to accumulaterequired
--amountUSD amount per purchase
--totalOR total USD to invest (calculates per-purchase amount)
--intervalTime between purchases: Xm, Xh, Xd, Xw (e.g., 1h, 4h, 1d, 1w)required
--countNumber of purchases to makerequired
--slippageSlippage tolerance in bps50
--dryShow DCA plan and schedule without executing
--verboseShow debug output

Market Making — Maker-Only (ALO)

Provide liquidity using ALO (Add Liquidity Only) orders that are rejected if they would cross the spread. Guarantees you always earn the maker rebate (~0.3 bps) instead of paying taker fees. Reads the actual order book for pricing.

# Market make HYPE with 1 bps offset from best bid/ask
openbroker mm-maker --coin HYPE --size 1 --offset 1

# Wider offset for volatile assets
openbroker mm-maker --coin ETH --size 0.1 --offset 2 --max-position 0.5
FlagDescriptionDefault
--coinAsset to market makerequired
--sizeOrder size on each side (base asset)required
--offsetOffset from best bid/ask in bps1
--max-positionMaximum net position before stopping that side3× size
--skew-factorHow aggressively to skew quotes for inventory2.0
--refreshRefresh interval in milliseconds2000
--durationHow long to run in minutes
--dryShow setup without trading
--verboseShow debug output

Market Making — Spread-Based

Place bid/ask quotes around the mid price. Earns the spread when both sides fill. Includes inventory skewing and cooldown after fills to manage directional risk.

# Market make ETH with 10bps spread
openbroker mm-spread --coin ETH --size 0.1 --spread 10

# Tighter position limit, faster cooldown
openbroker mm-spread --coin BTC --size 0.01 --spread 5 --max-position 0.03 --cooldown 3000
FlagDescriptionDefault
--coinAsset to market makerequired
--sizeOrder size on each side (base asset)required
--spreadTotal spread width in bps from midrequired
--skew-factorHow aggressively to skew for inventory2.0
--max-positionMaximum net position3× size
--cooldownCooldown after fill before same-side requote (ms)5000
--refreshRefresh interval in milliseconds2000
--durationHow long to run in minutes
--dryShow strategy parameters without trading
--verboseShow debug output

Global Options

These flags are available across all commands.

FlagDescription
--help, -hShow help for a command
--dryPreview the operation without executing (available on all trading/strategy commands)
--verboseShow detailed debug output including API requests/responses
--version, -vPrint the CLI version

Safety

Always use --dry first to preview any operation:

openbroker buy --coin ETH --size 0.1 --dry

Use testnet for testing:

export HYPERLIQUID_NETWORK="testnet"

Configuration

Config is loaded from these locations (in order of priority):

  1. 1Environment variables
  2. 2.env file in current directory
  3. 3~/.openbroker/.env (global config)

Run openbroker setup to create the global config, or set environment variables:

export HYPERLIQUID_PRIVATE_KEY=0x...     # Required: wallet private key
export HYPERLIQUID_NETWORK=mainnet       # Optional: mainnet (default) or testnet
export HYPERLIQUID_ACCOUNT_ADDRESS=0x... # Optional: for API wallets

API Wallet Setup

For automated trading, use an API wallet:

export HYPERLIQUID_PRIVATE_KEY="0x..."        # API wallet private key
export HYPERLIQUID_ACCOUNT_ADDRESS="0x..."    # Main account address

Note: Builder fee must be approved with the main wallet first. Sub-accounts cannot approve builder fees. After approval, you can switch to using the API wallet for trading.

Builder Fee

Open Broker charges 1 bps (0.01%) per trade to fund development. The builder fee is automatically approved during openbroker setup.

openbroker approve-builder --check       # Check approval status
openbroker approve-builder               # Retry approval if needed
openbroker approve-builder --max-fee "0.05%"  # Custom max fee
FlagDescriptionDefault
--checkOnly check current approval status, don't approve
--max-feeMaximum fee rate to approve0.1%
--builderCustom builder address (advanced)Open Broker
--verboseShow debug output

CLI Reference

Complete command reference for openbroker.

CategoryCommandDescription
Setupsetup, onboardInteractive setup wizard (wallet + config + builder)
Setupapprove-builderApprove builder fee (one-time)
InfoaccountBalance, equity, margin, positions
InfopositionsDetailed positions with PnL and liquidation
InfofundingFunding rates sorted by annualized rate
InfomarketsPerp market data, prices, volume, OI
Infoall-marketsAll markets (perps, HIP-3, spot)
InfosearchSearch assets across all providers
InfospotSpot markets and token balances
TradingbuyMarket buy (shortcut for market --side buy)
TradingsellMarket sell (shortcut for market --side sell)
TradingmarketMarket order with --side flag
TradinglimitLimit order (GTC, IOC, or ALO)
TradingtriggerTrigger order (TP/SL conditional)
TradingtpslSet TP/SL on existing position
TradingcancelCancel orders (by coin, ID, or all)
AdvancedtwapTime-weighted average price execution
AdvancedscaleGrid of limit orders (linear/exp/flat)
AdvancedbracketEntry + TP + SL in one command
AdvancedchaseChase price with ALO orders
Strategyfunding-arbFunding rate arbitrage with auto-close
StrategygridGrid trading (neutral/long/short)
StrategydcaDollar cost averaging (Xm/Xh/Xd/Xw)
Strategymm-spreadMarket making (spread-based, GTC)
Strategymm-makerMarket making (ALO, maker-only)