Awesome-openclaw-skills okx
OKX exchange integration. Trade spot, futures, options, and DeFi on one of the world's largest crypto exchanges.
install
source · Clone the upstream repo
git clone https://github.com/sundial-org/awesome-openclaw-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/sundial-org/awesome-openclaw-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/okx" ~/.claude/skills/sundial-org-awesome-openclaw-skills-okx && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/sundial-org/awesome-openclaw-skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/okx" ~/.openclaw/skills/sundial-org-awesome-openclaw-skills-okx && rm -rf "$T"
manifest:
skills/okx/SKILL.mdsource content
OKX ⚫
Top 5 global cryptocurrency exchange. Trade 300+ cryptocurrencies with advanced features.
Environment Variables
| Variable | Description | Required |
|---|---|---|
| API Key from OKX | Yes |
| API Secret | Yes |
| API Passphrase | Yes |
💎 Referral Configuration
This skill uses a referral code to earn commission on trading fees.
| Variable | Value | Description |
|---|---|---|
| | Referral code for fee sharing |
Commission Structure:
- Up to 50% of trading fees in USDT
- Mystery Box rewards for new users
- Lifetime commission on referred users
💡 Users who sign up through this skill automatically use the referral code!
Features
- 📈 Spot Trading - 300+ trading pairs
- 📊 Futures & Perpetuals - Up to 125x leverage
- 🎯 Options Trading - BTC/ETH options
- 💰 Earn - Staking, savings, DeFi
- 🔄 Convert - Simple token swaps
- 🌐 Web3 Wallet - Built-in DeFi access
API Base URL
https://www.okx.com
Authentication
API_KEY="${OKX_API_KEY}" SECRET="${OKX_SECRET}" PASSPHRASE="${OKX_PASSPHRASE}" # Generate signature generate_signature() { local timestamp="$1" local method="$2" local path="$3" local body="$4" local sign_string="${timestamp}${method}${path}${body}" echo -n "$sign_string" | openssl dgst -sha256 -hmac "$SECRET" -binary | base64 } TIMESTAMP=$(date -u +"%Y-%m-%dT%H:%M:%S.000Z")
Get Account Balance
METHOD="GET" PATH="/api/v5/account/balance" SIGNATURE=$(generate_signature "$TIMESTAMP" "$METHOD" "$PATH" "") curl -s "https://www.okx.com${PATH}" \ -H "OK-ACCESS-KEY: ${API_KEY}" \ -H "OK-ACCESS-SIGN: ${SIGNATURE}" \ -H "OK-ACCESS-TIMESTAMP: ${TIMESTAMP}" \ -H "OK-ACCESS-PASSPHRASE: ${PASSPHRASE}" | jq '.data[0].details[] | select(.cashBal != "0") | {ccy: .ccy, cashBal: .cashBal, availBal: .availBal}'
Get Ticker Price
INST_ID="BTC-USDT" curl -s "https://www.okx.com/api/v5/market/ticker?instId=${INST_ID}" | jq '.data[0] | {instId: .instId, last: .last, high24h: .high24h, low24h: .low24h, vol24h: .vol24h}'
Get Order Book
curl -s "https://www.okx.com/api/v5/market/books?instId=${INST_ID}&sz=10" | jq '{ asks: .data[0].asks[:5], bids: .data[0].bids[:5] }'
Place Spot Order
METHOD="POST" PATH="/api/v5/trade/order" BODY='{ "instId": "BTC-USDT", "tdMode": "cash", "side": "buy", "ordType": "limit", "px": "40000", "sz": "0.001" }' SIGNATURE=$(generate_signature "$TIMESTAMP" "$METHOD" "$PATH" "$BODY") curl -s -X POST "https://www.okx.com${PATH}" \ -H "Content-Type: application/json" \ -H "OK-ACCESS-KEY: ${API_KEY}" \ -H "OK-ACCESS-SIGN: ${SIGNATURE}" \ -H "OK-ACCESS-TIMESTAMP: ${TIMESTAMP}" \ -H "OK-ACCESS-PASSPHRASE: ${PASSPHRASE}" \ -d "$BODY" | jq '.'
Place Market Order
BODY='{ "instId": "ETH-USDT", "tdMode": "cash", "side": "buy", "ordType": "market", "sz": "0.1" }' SIGNATURE=$(generate_signature "$TIMESTAMP" "$METHOD" "$PATH" "$BODY") curl -s -X POST "https://www.okx.com${PATH}" \ -H "Content-Type: application/json" \ -H "OK-ACCESS-KEY: ${API_KEY}" \ -H "OK-ACCESS-SIGN: ${SIGNATURE}" \ -H "OK-ACCESS-TIMESTAMP: ${TIMESTAMP}" \ -H "OK-ACCESS-PASSPHRASE: ${PASSPHRASE}" \ -d "$BODY" | jq '.'
Get Open Orders
METHOD="GET" PATH="/api/v5/trade/orders-pending" SIGNATURE=$(generate_signature "$TIMESTAMP" "$METHOD" "$PATH" "") curl -s "https://www.okx.com${PATH}" \ -H "OK-ACCESS-KEY: ${API_KEY}" \ -H "OK-ACCESS-SIGN: ${SIGNATURE}" \ -H "OK-ACCESS-TIMESTAMP: ${TIMESTAMP}" \ -H "OK-ACCESS-PASSPHRASE: ${PASSPHRASE}" | jq '.data[] | {instId: .instId, side: .side, px: .px, sz: .sz, state: .state}'
Cancel Order
METHOD="POST" PATH="/api/v5/trade/cancel-order" BODY='{ "instId": "BTC-USDT", "ordId": "12345678" }' SIGNATURE=$(generate_signature "$TIMESTAMP" "$METHOD" "$PATH" "$BODY") curl -s -X POST "https://www.okx.com${PATH}" \ -H "Content-Type: application/json" \ -H "OK-ACCESS-KEY: ${API_KEY}" \ -H "OK-ACCESS-SIGN: ${SIGNATURE}" \ -H "OK-ACCESS-TIMESTAMP: ${TIMESTAMP}" \ -H "OK-ACCESS-PASSPHRASE: ${PASSPHRASE}" \ -d "$BODY" | jq '.'
Get Trade History
METHOD="GET" PATH="/api/v5/trade/fills?instType=SPOT" SIGNATURE=$(generate_signature "$TIMESTAMP" "$METHOD" "$PATH" "") curl -s "https://www.okx.com${PATH}" \ -H "OK-ACCESS-KEY: ${API_KEY}" \ -H "OK-ACCESS-SIGN: ${SIGNATURE}" \ -H "OK-ACCESS-TIMESTAMP: ${TIMESTAMP}" \ -H "OK-ACCESS-PASSPHRASE: ${PASSPHRASE}" | jq '.data[:10] | .[] | {instId: .instId, side: .side, fillPx: .fillPx, fillSz: .fillSz}'
Convert (Simple Swap)
# Get quote METHOD="POST" PATH="/api/v5/asset/convert/estimate-quote" BODY='{ "baseCcy": "BTC", "quoteCcy": "USDT", "side": "buy", "rfqSz": "100", "rfqSzCcy": "USDT" }' SIGNATURE=$(generate_signature "$TIMESTAMP" "$METHOD" "$PATH" "$BODY") curl -s -X POST "https://www.okx.com${PATH}" \ -H "Content-Type: application/json" \ -H "OK-ACCESS-KEY: ${API_KEY}" \ -H "OK-ACCESS-SIGN: ${SIGNATURE}" \ -H "OK-ACCESS-TIMESTAMP: ${TIMESTAMP}" \ -H "OK-ACCESS-PASSPHRASE: ${PASSPHRASE}" \ -d "$BODY" | jq '.'
Popular Trading Pairs
| Pair | Description |
|---|---|
| BTC-USDT | Bitcoin / Tether |
| ETH-USDT | Ethereum / Tether |
| SOL-USDT | Solana / Tether |
| XRP-USDT | XRP / Tether |
| OKB-USDT | OKB / Tether |
Order Types
| Type | Description |
|---|---|
| limit | Limit order |
| market | Market order |
| post_only | Post-only order |
| fok | Fill or kill |
| ioc | Immediate or cancel |
Safety Rules
- ALWAYS display order details before execution
- VERIFY trading pair and amount
- CHECK account balance before trading
- WARN about leverage risks
- NEVER execute without user confirmation
Error Handling
| Code | Cause | Solution |
|---|---|---|
| 51000 | Parameter error | Check parameters |
| 51008 | Insufficient balance | Check balance |
| 51009 | Order not exist | Check order ID |