Agent skills for trading cryptocurrency via the Crypto.com APIs. Works with any SKILL.md-compatible agent platform (OpenClaw, Cursor, Claude Code, and others).
This repository contains two independent skills:
| Skill | Directory | Description |
|---|---|---|
| Main App | crypto-com-app/ |
Execute trading, check balances, token prices via Crypto.com App |
| Exchange | crypto-com-exchange/ |
Execute trading, check balances, token prices via Crypto.com Exchange |
Each skill has its own SKILL.md and references. Install one or both depending on your use case.
- Trade: Market buy, sell, swap, and exchange across 200+ tokens (BTC, ETH, CRO, and more)
- Balances: Query fiat and crypto portfolio holdings
- Prices: Discover coins and check market prices
- History: View recent transaction history
- Trading Limits: Check weekly trading budget usage
- Kill Switch: Emergency API key revocation
First, generate an API key following the API Key Management guide. Then export the key and secret in your terminal:
export CDC_API_KEY="your-api-key"
export CDC_API_SECRET="your-api-secret"npx skills add crypto-com/crypto-agent-trading/crypto-com-app -g -yOr manually copy the skill folder to your agent platform's skill directory:
| Platform | Install location | Activation |
|---|---|---|
| OpenClaw | ~/.openclaw/skills/crypto-com-app/ |
Say "Initialize the crypto-com-app skill" |
| Cursor | ~/.cursor/skills/crypto-com-app/ |
Add as an agent skill in settings |
| Claude Code | ~/.claude/skills/crypto-com-app/ |
Point Claude at the SKILL.md path |
| Other agents | Any local directory | Point your agent at SKILL.md |
The skill uses relative script paths (./scripts/... from the skill root), so it works from any install location without path modifications.
User: "Buy CRO with 100 USD"
Agent: (runs quote) "Confirm: buy 1,250 CRO for 100 USD? This quote expires in 15 seconds."
User: "Yes"
Agent: (runs confirm) "Done! Purchased 1,250 CRO for 100 USD."
User: "What's my balance?"
Agent: (runs balance check) "You hold 1,250 CRO ($105.00) and 400.00 USD."
User: "Swap 500 CRO to BTC"
Agent: (runs quote) "Confirm: swap 500 CRO for 0.00045 BTC? Expires in 15 seconds."
User: "No, make it 200 CRO instead"
Agent: (runs new quote) "Confirm: swap 200 CRO for 0.00018 BTC? Expires in 15 seconds."
User: "Confirm"
Agent: (runs confirm) "Done! Swapped 200 CRO for 0.00018 BTC."
The skills work together in typical trading flows:
Basic Trading: Check balance (crypto-com-app) → Get quote (crypto-com-app) → Confirm trade (crypto-com-app)
Portfolio Review: View balances (crypto-com-app) → Check history (crypto-com-app) → Analyze limits (crypto-com-app)
crypto-com-app/
├── _meta.json # OpenClaw package metadata
├── SKILL.md # Core skill: configs, commands, business logic
├── CHANGELOG.md # Version history
├── references/
│ └── errors.md # Detailed error scenarios + recovery
└── scripts/
├── lib/
│ ├── api.ts # HTTP client, HMAC signing
│ └── output.ts # Structured output + error codes
├── account.ts # Balances, trading limit, kill switch
├── trade.ts # Quotations, orders, history
└── coins.ts # Coin discovery
- Node.js 18+ (for
npx tsxand built-infetch) - A Crypto.com App account with API key and secret
- No withdrawal permissions -- the API key can only trade; it cannot withdraw funds from your account
- Weekly trading limit -- a configurable cap on total trading volume acts as a financial guardrail against runaway spending
- HMAC-SHA256 signing -- all requests are signed to prevent tampering and replay attacks
- Environment-only credentials -- API keys are read from environment variables only and never stored in files
- Kill switch -- instantly revoke API access in emergencies to stop all further trading
- Spot Orders: Place, amend, and cancel LIMIT and MARKET orders
- Advanced Orders: STOP_LOSS, STOP_LIMIT, TAKE_PROFIT, TAKE_PROFIT_LIMIT
- Order Groups: Manage OCO, OTO, and OTOCO order groups
- Balances & Positions: Query balances, positions, order history, and trade history
- Withdrawals: Withdraw funds and check deposit/withdrawal status
- Market Data: Tickers, order book, candlesticks, and trades
- Copy the
crypto-com-exchange/skill folder into your agent platform's skill directory - Provide your Crypto.com Exchange API key and secret
- The agent reads the
SKILL.mdand handles authentication, signing, and request formatting directly — no scripts or runtime dependencies required
- Log in to Crypto.com Exchange
- Go to Settings → API Keys
- Create a new key with desired permissions (Spot Trading, Withdrawal, etc.)
- Set IP whitelist for production use
- Store the API key and secret securely
User: "Place a limit buy for 0.1 BTC at $93,000"
Agent: "Confirm: LIMIT BUY 0.1 BTC_USD @ $93,000?"
User: "CONFIRM"
Agent: "Done! Order placed — order ID 6530219599901000701."
User: "Set up an OCO on BTC — sell limit at $108,000, stop-loss at $80,000, 0.1 BTC each"
Agent: "Confirm: OCO on BTC_USD — SELL LIMIT @ $108,000 + SELL STOP_LOSS trigger @ $80,000, 0.1 BTC per leg?"
User: "CONFIRM"
Agent: "Done! OCO created — list ID 6498090546073120100."
User: "What are my balances?"
Agent: "You hold 1.25 BTC, 5,000 USDT, and 10,000 CRO on your Exchange account."
| Environment | Base URL |
|---|---|
| Production | https://api.crypto.com/exchange/v1/ |
| UAT Sandbox | https://uat-api.3ona.co/exchange/v1/ |
UAT Sandbox requires separate credentials (institutional access only).
- 52 endpoints — public market data, private trading, advanced orders, wallet, account management
- Production-tested — every endpoint verified against live API with real orders
- 66 edge cases documented — param types, pagination quirks, error codes, validation rules
| Endpoint | Limit |
|---|---|
create-order, cancel-order, cancel-all-orders |
15 req / 100ms each |
get-order-detail |
30 req / 100ms |
get-trades, get-order-history |
1 req / second |
| Other private endpoints | 3 req / 100ms each |
| Public market data | 100 req / second (per IP) |
Max open orders: 200 per trading pair, 1,000 across all pairs (per account/subaccount).
- Order params (
price,quantity,notional,ref_price,amount) must be strings limitmust be a number (not string)- Instrument names are case-sensitive:
BTC_USDnotbtc_usd - Public endpoints = GET only, Private endpoints = POST only
- All private requests use JSON body with HMAC-SHA256 signature
See the Exchange SKILL.md for the full reference.
crypto-com-exchange/
├── SKILL.md # Full skill definition — 52 endpoints, parameters, edge cases, agent behavior
├── references/
│ └── authentication.md # HMAC-SHA256 signing implementation (Python, JavaScript, Bash), error codes
└── LICENSE.md # MIT License
- HMAC-SHA256 signing -- all private requests are signed to prevent tampering and replay attacks
- Production confirmation -- the agent requires explicit user confirmation (typing "CONFIRM") before executing any production trade
- Credential masking -- API keys and secrets are never displayed in full; only partial characters are shown
- IP whitelisting -- API keys can be restricted to specific IP addresses for production use
- Withdrawal whitelisting -- withdrawal destination addresses must be pre-approved in your Exchange account settings
- OpenClaw Integration with Agent Key
- OpenClaw Trading Overview
- Getting Started
- API Key Management
- Trading with OpenClaw
- Weekly Trading Limit
- Safety and Security
- Notifications
- Main App Skill: Apache License 2.0
- Exchange Spot Skill: MIT License