REGISTRATION

Getting started

Getting Started with RapidX

Getting Started with RapidX

Install the CLI, connect your agent, run your first trade — in under 10 minutes.

RapidX CLI (@liquiditytech/rapidx-cli) provides two independent integration paths — choose either one or both:

PathHow you use itBest for
CLIrapidx <domain> <action> --input '...' --json in your shell or codeScripts, CI, exec-only agents
MCPrapidx mcp serve registered as an MCP server in Claude Code / Codex / CursorAI agent hosts that support MCP

The two paths share the same credentials and the same underlying capabilities. You do not need to use MCP to use the CLI, and you do not need to run CLI commands if your agent uses MCP.


Before You Begin

Account & Credentials

Competition accounts are issued by the organizer at registration. Each account includes:

  • LTP_ACCESS_KEY and LTP_SECRET_KEY — your API credentials
  • LTP_API_HOSThttps://api.ltp-contest.com
  • Initial virtual balance: 1,000 USDT (simulation only, no real assets at risk)
  • Default position mode: BOTH (hedge mode)

See resources.md §1 for full account details and Track A symbol restrictions.

⚠️ Key competition rules: portfolio drawdown > 20% triggers automatic stop-loss and disqualification. Agent uptime must be ≥ 90%. See resources.md §11.

Software Requirements

RequirementDetails
Node.js20 or later
npmAny recent version

Step 1 — Install the CLI

npm install -g @liquiditytech/rapidx-cli@latest
rapidx --version

If npm cannot find the package:

npm config set @liquiditytech:registry https://registry.npmjs.org/
npm install -g @liquiditytech/rapidx-cli@latest

Step 2 — Configure Credentials

export LTP_ACCESS_KEY="<your-access-key>"
export LTP_SECRET_KEY="<your-secret-key>"
export LTP_API_HOST="https://api.ltp-contest.com"

Never paste keys into public chats, repositories, screenshots, or logs.

Verify credential resolution (no full secrets printed):

rapidx auth check

Step 3 — Choose Your Integration Path

CLI and MCP are independent — pick the one that fits your setup. You can switch or combine them at any time.

Path A — MCP

For AI agent hosts that natively support MCP: Claude Code, Codex, Cursor, Continue, OpenCode. Your agent calls rapidx/market/get-ticker, rapidx/order/place, etc. as structured tools — no shell commands in your code.

Option 1: Install skills (let the agent do the rest)

Skills guide the agent through the full setup automatically.

# Claude Code
npx skills add https://github.com/LiquidityTech/ltp-rapidx-skill.git \
  --skill ltp-rapidx-config --skill ltp-rapidx-trading -a claude-code -y

# Codex
npx skills add https://github.com/LiquidityTech/ltp-rapidx-skill.git \
  --skill ltp-rapidx-config --skill ltp-rapidx-trading -a codex -y

# Cursor
npx skills add https://github.com/LiquidityTech/ltp-rapidx-skill.git \
  --skill ltp-rapidx-config --skill ltp-rapidx-trading -a cursor -y

# OpenClaw
openclaw skills install ltp-rapidx-config
openclaw skills install ltp-rapidx-trading

# Hermes
hermes skills install LiquidityTech/ltp-rapidx-skill/skills/ltp-rapidx-config
hermes skills install LiquidityTech/ltp-rapidx-skill/skills/ltp-rapidx-trading

After installing, tell your agent: "Follow ltp-rapidx-config." The skill configures MCP, sets credentials, and runs self-check.

Option 2: Configure MCP manually

Add to your agent's MCP config file (e.g. claude_desktop_config.json):

{
  "mcpServers": {
    "rapidx": {
      "command": "rapidx",
      "args": ["mcp", "serve"],
      "env": {
        "LTP_ACCESS_KEY": "<your-access-key>",
        "LTP_SECRET_KEY": "<your-secret-key>",
        "LTP_API_HOST": "https://api.ltp-contest.com"
      }
    }
  }
}

Restart the agent host. MCP tools become available under the rapidx/ namespace.

Path B — CLI

For exec-only agents, shell scripts, Python/Java/C++ bots, CI pipelines. No MCP setup required — call rapidx commands directly from your code.

rapidx market get-ticker --input '{"symbol":"BINANCE_PERP_BTC_USDT"}' --json
rapidx portfolio overview --json       # portfolio overview (account summary)
rapidx portfolio assets --json         # per-coin asset breakdown
rapidx order open-orders --json        # current open orders
rapidx position query --json           # open positions

All commands return a stable JSON envelope. Always call rapidx schema --json first to get exact input schemas for the current version — see 02-cli-mcp-reference.md §CLI Reference for the full command list, automation sessions, and readback patterns.


Step 4 — Run Self-Check

rapidx self-check --read-only --json

Each check item reports PASS / EXPECTED_ERROR / FAIL / NOT_VERIFIED. Do not proceed to trading until all critical items pass.

Expected output:

{
  "ok": true,
  "status": "PASS",
  "data": {
    "scope": "quick",
    "status": "PASS",
    "checks": [
      { "name": "discovery", "status": "PASS" },
      { "name": "public-market", "status": "PASS" }
    ]
  }
}

Step 5 — Query Market Data

# Live ticker
rapidx market get-ticker --input '{"symbol":"BINANCE_PERP_BTC_USDT"}' --json

# Klines (1h, last 100 bars)
rapidx market get-klines --input '{"symbol":"BINANCE_PERP_BTC_USDT","interval":"1h","limit":100}' --json

# Order book (20 levels)
rapidx market get-orderbook --input '{"symbol":"BINANCE_PERP_BTC_USDT","level":20}' --json

# Symbol rules — always check before trading
rapidx market get-symbol-info --input '{"symbol":"BINANCE_PERP_BTC_USDT"}' --json

get-symbol-info returns minNotional, lotSize, tickSize, and contractSize — read it before sizing any order.


Step 6 — Place Your First Order

All write operations follow preview → submit. The preview validates trading rules and returns a token; the submit uses that token.

# 1. Preview
rapidx order place-preview --input '{
  "symbol": "BINANCE_PERP_BTC_USDT",
  "side": "BUY",
  "positionSide": "LONG",
  "orderType": "LIMIT",
  "price": "60000",
  "quantity": "0.001",
  "maxNotional": "100",
  "clientOrderId": "my-first-order",
  "postOnly": true
}' --json

positionSide is required — competition accounts default to BOTH (hedge) mode, which requires LONG or SHORT on every order. postOnly: true means the order will be rejected if it would immediately fill (protects against accidental market execution).

Preview response — copy submitToken for the next step:

{
  "ok": true,
  "status": "PASS",
  "data": {
    "previewId": "rpv_xxx",
    "confirmation": { "submitToken": "confirm_rpv_xxx" }
  }
}
# 2. Submit — same params + previewId + continueConsentId
#    continueConsentId = the submitToken value from the preview response above
rapidx order place --input '{
  "symbol": "BINANCE_PERP_BTC_USDT",
  "side": "BUY",
  "positionSide": "LONG",
  "orderType": "LIMIT",
  "price": "60000",
  "quantity": "0.001",
  "maxNotional": "100",
  "clientOrderId": "my-first-order",
  "postOnly": true,
  "previewId": "rpv_xxx",
  "continueConsentId": "confirm_rpv_xxx"
}' --json

# 3. Confirm state
rapidx order query --input '{"clientOrderId":"my-first-order"}' --json

Preview and submit must use the same runtime (both CLI or both MCP — do not mix). Preview records expire after ~5 minutes. clientOrderId must be unique per order — reusing the same value on a second run will fail. Use a timestamp suffix (e.g. "my-order-1749123456") for each new order.


What's Next

DocumentContents
02-cli-mcp-reference.mdComplete MCP tool reference + CLI command reference, automation sessions, readback patterns, troubleshooting
03-advanced-api.mdDirect REST/WebSocket access for custom integrations
04-news-feed.mdNews Feed REST + WebSocket — real-time and historical crypto news
resources.mdEndpoints, npm package, symbol list, schedule, support