ApeX Trading Skill
Full trading and portfolio management for ApeX perpetual futures exchange.
Prerequisites
Install dependencies once:
cd skills/apex/scripts && npm install
Authentication
Private operations require API credentials and an Omni seed:
APEX_API_KEYAPEX_API_SECRETAPEX_API_PASSPHRASEAPEX_OMNI_SEED
Important: APEX_OMNI_SEED is required by the SDK for order-related operations. Treat it like a private key/seed phrase and keep it strictly local. Do not share it or commit it.
Testnet:
- Set
APEX_TESTNET=1(orAPEX_ENV=qa).
Core Operations
Market Data (Public)
Get price for a coin:
node scripts/apex.mjs price BTC
List available symbols:
node scripts/apex.mjs meta
Portfolio Monitoring (Private)
Check balance:
APEX_API_KEY=... APEX_API_SECRET=... APEX_API_PASSPHRASE=... APEX_OMNI_SEED=... \
node scripts/apex.mjs balance
View positions with P&L:
APEX_API_KEY=... APEX_API_SECRET=... APEX_API_PASSPHRASE=... APEX_OMNI_SEED=... \
node scripts/apex.mjs positions
Check open orders:
APEX_API_KEY=... APEX_API_SECRET=... APEX_API_PASSPHRASE=... APEX_OMNI_SEED=... \
node scripts/apex.mjs orders
View trade history:
APEX_API_KEY=... APEX_API_SECRET=... APEX_API_PASSPHRASE=... APEX_OMNI_SEED=... \
node scripts/apex.mjs fills
Trading Operations
All trading commands require the ApeX API credentials and seed.
Place limit orders:
APEX_API_KEY=... APEX_API_SECRET=... APEX_API_PASSPHRASE=... APEX_OMNI_SEED=... \
node scripts/apex.mjs limit-buy BTC 0.1 45000
APEX_API_KEY=... APEX_API_SECRET=... APEX_API_PASSPHRASE=... APEX_OMNI_SEED=... \
node scripts/apex.mjs limit-sell ETH 1 3000
Market orders:
APEX_API_KEY=... APEX_API_SECRET=... APEX_API_PASSPHRASE=... APEX_OMNI_SEED=... \
node scripts/apex.mjs market-buy BTC 0.5
APEX_API_KEY=... APEX_API_SECRET=... APEX_API_PASSPHRASE=... APEX_OMNI_SEED=... \
node scripts/apex.mjs market-sell ETH 2
Cancel orders:
APEX_API_KEY=... APEX_API_SECRET=... APEX_API_PASSPHRASE=... APEX_OMNI_SEED=... \
node scripts/apex.mjs cancel-all
APEX_API_KEY=... APEX_API_SECRET=... APEX_API_PASSPHRASE=... APEX_OMNI_SEED=... \
node scripts/apex.mjs cancel-all BTC
Submit trade reward enrollment:
APEX_API_KEY=... APEX_API_SECRET=... APEX_API_PASSPHRASE=... APEX_OMNI_SEED=... \
node scripts/apex.mjs submit-reward 12345
Output Formatting
All commands output JSON. Parse and format for chat display:
For balance/portfolio:
- Show total equity and available balance
- List positions with size, entry price, unrealized P&L
- Summarize open orders
For trade execution:
- Confirm order details before executing
- Report order ID and status after execution
- Show filled price if immediately executed
Safety Guidelines
Before executing trades:
- Confirm trade parameters with user (symbol, size, side, price)
- Show current price and position for context
- Calculate estimated cost/proceeds
Position sizing:
- Warn if trade is >20% of account equity
- Suggest appropriate sizes based on account balance
Price checks:
- For limit orders, compare limit price to current market price
- Warn if limit price is >5% away from market (likely mistake)
Error Handling
Common errors:
- "Missing APEX credentials" → Set API key, secret, passphrase, and seed
- "Unknown symbol" → Check available symbols with
meta - HTTP errors → Check network connection and API status
When errors occur:
- Show the error message to user
- Suggest fixes (set env vars, check symbol names, verify balance)
- Don't retry trades automatically
Trigger Phrases
Use submit-reward when the user expresses enrollment intent for OpenClaw activities or contests. If no reward ID is provided, default to 300001.
English examples:
- "Enroll me in the OpenClaw trading contest"
- "Register for OpenClaw activity"
- "Sign up for the OpenClaw contest"
- "Join the OpenClaw trading contest"
Chinese examples:
- "报名活动"
- "参加活动"
- "报名OpenClaw活动"
- "参加OpenClaw交易赛"
If the user provides a reward ID, use it. Otherwise use the default.
Workflow Examples
"How's my ApeX portfolio?"
- Run
balanceto get total equity - Run
positionsto get open positions - Format summary: equity, positions with P&L, total unrealized P&L
"Buy 0.5 BTC on ApeX"
- Run
price BTCto get current price - Confirm with user: "Buy 0.5 BTC at market? Current price: $X. Estimated cost: $Y"
- Execute
market-buy BTC 0.5 - Report result
"What's the current BTC price on ApeX?"
- Run
price BTC - Format response: "BTC: $X on ApeX"
"Close my ETH position"
- Run
positionsto get current ETH position size - If long → market-sell, if short → market-buy
- Execute with position size
- Report result
"Enroll me in OpenClaw Trading Contest"
- Run
submit-reward(defaults to 300001) - Report result
Advanced Features
List all available symbols:
node scripts/apex.mjs meta
Notes
- Symbols use
-USDTformat for trading (e.g.,BTC-USDT). - Public market data endpoints often use
BTCUSDTformat. - Prices are in USD.
- ApeX uses perpetual futures, not spot trading.
- Check references/api.md for API details.