What the CLI does
The CLI is the fastest way to:- create and manage Solana wallets for trading
- inspect active instruments and options chains
- get quotes and order book snapshots
- place and cancel paper-trading orders
- review balances, positions, and trade history
- stream live market data in the terminal
Installation
Prerequisites
- Node.js >= 20.0.0
Install and verify
For alpha access, install the Joyride CLI from the package or binary you received from the Joyride team. After installation, verify it is available on your PATH:engineering@joyride.exchange.
Setup and authentication
First-run setup
The first time you run any command, an interactive setup wizard launches:Authentication model
The CLI authenticates to the Joyride API using a Solana wallet via SIWS (Sign-In with Solana). Your wallet’s private key is encrypted with a passphrase and stored locally as a keystore file. The first successful Joyride authentication creates a paper-trading account with a starting balance of $10,000.00. The CLI resolves wallet credentials in this order:JOYRIDE_PRIVATE_KEYenv var — Base58-encoded private key (bypasses keystore entirely)- Keystore +
JOYRIDE_KEYSTORE_PASSWORDenv var — decrypts the keystore automatically - Keystore + interactive passphrase prompt — prompts in TTY mode
Config file
Config is saved to~/.joyride/config.toml:
Configuration priority
Settings resolve in this order (highest priority first):- CLI flags (
--gateway,--http,--asset,--output) - Environment variables (
JOYRIDE_WS_URL,JOYRIDE_HTTP_URL,JOYRIDE_PRIVATE_KEY,JOYRIDE_KEYSTORE_PASSWORD) - Config file (
~/.joyride/config.toml) - Defaults (
wss://joyride.exchange/api/v1,https://joyride.exchange/api)
Instrument ID format
All instrument IDs follow this pattern:| Component | Description | Examples |
|---|---|---|
ASSET | Underlying asset | SOL, BTC, ETH |
DMMMYY | Expiry date (1- or 2-digit day) | 3MAR26, 27FEB26 |
STRIKE | Strike price (integer USD) | 75, 100, 200 |
C|P | Option type | C (call), P (put) |
SOL_USDC-3MAR26-75-C— SOL $75 call expiring Mar 3, 2026SOL_USDC-27FEB26-100-P— SOL $100 put expiring Feb 27, 2026
joyride chain SOL to see all available instruments and their valid IDs.
Joyride currently offers same-day (0DTE) options. Instruments expire at end of day and refresh daily.
Command reference
Wallet management
joyride wallet create
Generate a new Solana wallet, encrypt it with a passphrase, and save it locally.
joyride wallet import
Import a wallet from a Base58-encoded private key.
| Flag | Required | Description |
|---|---|---|
--private-key <key> | No | Base58-encoded private key. Prompted if omitted. |
joyride wallet list
List all wallets in the keystore directory.
joyride wallet show
Show the active wallet address and keystore path.
joyride wallet use <address>
Switch the active wallet.
Market data
joyride chain <asset>
List all options contracts for an asset. Start here to see available instruments.
joyride quote <instrument>
Get the current best bid, ask, and mid price.
-.
Transport: WebSocket
joyride book <instrument>
Show bid and ask price levels with sizes.
| Flag | Description |
|---|---|
--depth <levels> | Number of price levels (default: 10) |
--live | Stream real-time updates (press Ctrl+C to exit) |
joyride ticker <instrument>
Get last price, volume, and open interest.
Transport: HTTP
joyride tickers
Summary of all instruments with recent activity.
Transport: HTTP
joyride price <asset>
Current spot price for the underlying asset.
joyride history <instrument>
OHLCV candle data for an instrument.
| Flag | Description |
|---|---|
--start <YYYY-MM-DD> | Start date |
--end <YYYY-MM-DD> | End date |
joyride market-config
Exchange-level settings (tick sizes, contract sizes, trading hours).
Transport: HTTP
Trading
joyride order place
Place a limit or market order.
| Flag | Required | Description |
|---|---|---|
--instrument <id> | Yes | Instrument ID |
--side <buy|sell> | Yes | Order side |
--size <contracts> | Yes | Number of contracts (decimals allowed, e.g. 0.5) |
--price <usd> | No | Limit price in USD. Omit for market order. |
joyride order list
List open orders.
joyride order status <orderId>
Check order status. Checks open orders first, then falls back to order history.
Transport: WebSocket + HTTP (fallback)
joyride order cancel <orderId>
Cancel a specific order.
| Flag | Required | Description |
|---|---|---|
--instrument <id> | Yes | Instrument ID of the order |
joyride order cancel-all
Cancel all open orders.
joyride order history
All orders including filled, cancelled, and expired.
Transport: HTTP
Account
joyride balance
Account balance.
joyride account
Combined balance and positions overview.
Transport: HTTP
joyride positions
Open positions with optional PnL metrics.
joyride trades
Trade history. Add --live <instrument> for a real-time feed.
joyride profiles
List all user profiles (usernames and avatars).
Transport: HTTP
Live streaming
Two commands support live-updating terminal UIs powered by Ink. PressCtrl+C to exit.
Output modes
Every command supports two output formats:Table (default)
Human-readable tables with formatting and colors.JSON
Machine-readable JSON for scripts, pipes, and AI agents.Global flags
These flags work on every command:| Flag | Short | Description |
|---|---|---|
--output <format> | -o | table (default) or json |
--verbose | -v | Enable verbose logging |
--gateway <url> | Override WebSocket URL | |
--http <url> | Override HTTP REST URL | |
--asset <asset> | Override default asset (SOL, BTC, ETH) | |
--version | -V | Show CLI version |
--help | -h | Show help |
Transport reference
The CLI uses two transports to communicate with the Joyride API.WebSocket commands (real-time)
| Command | Description |
|---|---|
chain | List available instruments |
quote | Best bid/ask/mid |
book | Order book snapshot or live stream |
order place | Place limit or market order |
order cancel | Cancel an order |
order cancel-all | Cancel all orders |
order list | List open orders |
balance | Account balance |
trades --live | Live trade feed |
HTTP commands (snapshots)
| Command | Description |
|---|---|
ticker | Ticker snapshot |
tickers | All tickers |
price | Underlying spot price |
history | OHLCV price history |
market-config | Exchange configuration |
account | Account summary |
positions | Open positions |
trades | Trade history |
profiles | User profiles |
order history | Full order history |
order status | Falls back to HTTP if not in open orders |
- WebSocket:
wss://joyride.exchange/api/v1 - HTTP:
https://joyride.exchange/api
Troubleshooting
zsh: command not found: joyride
The CLI executable is not installed or not on your PATH. Reinstall it from the Joyride alpha package you received and restart your shell.
Setup wizard hangs or won’t accept input
The wizard requires an interactive terminal (TTY). It won’t work when piped or in CI. Runjoyride setup directly in your terminal.
iter.next is not a function
Your installed CLI version is out of date. Upgrade to the latest Joyride CLI package or binary provided for the alpha.
Passphrase prompted on every command
Each CLI invocation is a separate process. To avoid repeated prompts, export the passphrase:JOYRIDE_PRIVATE_KEY to bypass the keystore entirely.
Quote shows all dashes
The order book is empty — no bids or asks are resting. This is normal on a thin paper trading market. Tryjoyride chain SOL to find instruments with activity.
HTTP commands fail
Check your config:http_url is correct and the endpoint is running. WebSocket commands will still work without HTTP.
Orders disappear immediately
0DTE options expire at end of day. If instruments have expired, orders may be automatically cancelled. Usejoyride chain SOL to check current expiry dates.