Install
openclaw skills install ccxtInteract with 100+ cryptocurrency exchanges — fetch markets, order books, tickers, place orders, check balances, and more using the CCXT CLI.
openclaw skills install ccxtYou have access to the ccxt CLI tool which lets you interact with 100+ cryptocurrency exchanges (Binance, Bybit, OKX, Kraken, Coinbase, and many more). You can fetch market data, place orders, check balances, and stream live data.
ccxt <exchange_id> <methodName> [args...] [options]
If you're unsure about the required arguments for a method, run:
ccxt explain <methodName>
This will show you the required and optional arguments with descriptions.
| Flag | Purpose |
|---|---|
--verbose | Show raw request/response data |
--sandbox | Use testnet/sandbox environment |
--raw | Output clean JSON without formatting |
--swap | Target swap/perpetuals account |
--future | Target futures account |
--spot | Target spot account |
--option | Target options account |
--param key=value | Pass extra exchange-specific params (repeatable) |
--no-keys | Skip API key loading |
Fetch markets (list all trading pairs on an exchange):
ccxt <exchange> fetchMarkets --raw
Fetch a single ticker:
ccxt <exchange> fetchTicker "BTC/USDT" --raw
Fetch multiple tickers:
ccxt <exchange> fetchTickers --raw
Fetch order book:
ccxt <exchange> fetchOrderBook "BTC/USDT" --raw
Fetch OHLCV candles:
ccxt <exchange> fetchOHLCV "BTC/USDT" 1h undefined 10 --raw
Fetch recent trades:
ccxt <exchange> fetchTrades "BTC/USDT" --raw
Fetch exchange status:
ccxt <exchange> fetchStatus --raw
Fetch currencies:
ccxt <exchange> fetchCurrencies --raw
Create an order:
ccxt <exchange> createOrder "BTC/USDT" limit buy 0.001 50000 --raw
ccxt <exchange> createOrder "BTC/USDT" market buy 0.001 --raw
Create order with extra params:
ccxt <exchange> createOrder "BTC/USDT" limit buy 0.001 50000 --param stopPrice=49000 --raw
Cancel an order:
ccxt <exchange> cancelOrder "<order_id>" "BTC/USDT" --raw
Fetch open orders:
ccxt <exchange> fetchOpenOrders "BTC/USDT" --raw
Fetch closed orders:
ccxt <exchange> fetchClosedOrders "BTC/USDT" --raw
Fetch a specific order:
ccxt <exchange> fetchOrder "<order_id>" "BTC/USDT" --raw
Fetch balance:
ccxt <exchange> fetchBalance --raw
Fetch balance for derivatives:
ccxt <exchange> fetchBalance --swap --raw
Fetch my trades:
ccxt <exchange> fetchMyTrades "BTC/USDT" --raw
Fetch positions (derivatives):
ccxt <exchange> fetchPositions --swap --raw
Fetch deposit address:
ccxt <exchange> fetchDepositAddress "BTC" --raw
Fetch funding rate:
ccxt <exchange> fetchFundingRate "BTC/USDT:USDT" --raw
Fetch funding rate history:
ccxt <exchange> fetchFundingRateHistory "BTC/USDT:USDT" --raw
Fetch mark price / index price:
ccxt <exchange> fetchMarkOHLCV "BTC/USDT:USDT" 1h --raw
ccxt <exchange> fetchIndexOHLCV "BTC/USDT:USDT" 1h --raw
/ or : — e.g., "BTC/USDT", "BTC/USDT:USDT".undefined as a positional placeholder to skip optional arguments while providing later ones. For example: ccxt binance fetchOHLCV "BTC/USDT" 1h undefined 10 skips since but provides limit.--raw when you need to parse the output programmatically or when the user needs clean JSON.--sandbox for testing with testnet environments. Always recommend sandbox mode when the user is experimenting with orders."2025-01-01T00:00:00Z") are auto-converted to milliseconds.BINANCE_APIKEY, BINANCE_SECRET) or the config file. If a private method fails due to missing credentials, instruct the user to set them up."BASE/QUOTE:SETTLE" — e.g., "BTC/USDT:USDT" for USDT-margined perpetuals.createOrder. The CLI executes immediately with no confirmation prompt.fetchMarkets returns hundreds of entries), consider piping through | head or filtering, or suggest the user narrows their query.ccxt exchanges or refer to https://docs.ccxt.com.Tell users to configure credentials in one of two ways:
Option 1 — Environment variables:
export BINANCE_APIKEY=your_api_key
export BINANCE_SECRET=your_secret
Option 2 — Config file (path shown in ccxt --help):
{
"binance": {
"apiKey": "your_api_key",
"secret": "your_secret"
}
}
AuthenticationError, the API keys are missing or invalid.ExchangeNotAvailable or NetworkError, the exchange may be down or rate-limiting.BadSymbol, the trading pair doesn't exist on that exchange — use fetchMarkets to check available pairs.InsufficientFunds, the account doesn't have enough balance for the operation.