# Send Weex to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "weex-trading-skills",
    "name": "Weex",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/bowen31337/weex-trading-skills",
    "canonicalUrl": "https://clawhub.ai/bowen31337/weex-trading-skills",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/weex-trading-skills",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=weex-trading-skills",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "scripts/weex_client.py",
      "references/api_reference.md"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/weex-trading-skills"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/weex-trading-skills",
    "downloadUrl": "https://openagent3.xyz/downloads/weex-trading-skills",
    "agentUrl": "https://openagent3.xyz/skills/weex-trading-skills/agent",
    "manifestUrl": "https://openagent3.xyz/skills/weex-trading-skills/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/weex-trading-skills/agent.md"
  }
}
```
## Documentation

### WEEX Futures Trading 🔵

Open AI Agent Skill for USDT-margined perpetual futures trading on WEEX exchange. Up to 125x leverage.

Open Agent Skill: This skill is designed to work with any AI agent that supports bash/curl commands, including Claude, GPT, Gemini, LLaMA, Mistral, and other LLM-based agents.

### Features

📊 Futures Trading - USDT-M perpetual contracts up to 125x leverage
💰 Account Management - Balance, positions, margin settings
📈 Market Data - Tickers, order book, candlesticks, funding rates
🎯 Advanced Orders - Trigger orders, TP/SL, conditional orders
🤖 AI Integration - Log AI trading decisions
🔌 Universal Compatibility - Works with any AI agent supporting shell commands

### Environment Variables

VariableDescriptionRequiredWEEX_API_KEYAPI Key from WEEXYesWEEX_API_SECRETAPI SecretYesWEEX_PASSPHRASEAPI PassphraseYesWEEX_BASE_URLAPI base URLNo (default: https://api-contract.weex.com)

### Authentication

API_KEY="${WEEX_API_KEY}"
SECRET="${WEEX_API_SECRET}"
PASSPHRASE="${WEEX_PASSPHRASE}"
BASE_URL="${WEEX_BASE_URL:-https://api-contract.weex.com}"

TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))")

# Generate signature
generate_signature() {
  local method="$1"
  local path="$2"
  local body="$3"
  local message="${TIMESTAMP}${method}${path}${body}"
  echo -n "$message" | openssl dgst -sha256 -hmac "$SECRET" -binary | base64
}

### Get Server Time

curl -s "${BASE_URL}/capi/v2/market/time" | jq '.'

### Get All Contracts Info

curl -s "${BASE_URL}/capi/v2/market/contracts" | jq '.data[] | {symbol: .symbol, baseCoin: .underlying_index, quoteCoin: .quote_currency, contractVal: .contract_val, minLeverage: .minLeverage, maxLeverage: .maxLeverage, tickSize: .tick_size, sizeIncrement: .size_increment}'

### Get Single Contract Info

SYMBOL="cmt_btcusdt"

curl -s "${BASE_URL}/capi/v2/market/contracts?symbol=${SYMBOL}" | jq '.data'

### Get Ticker Price

SYMBOL="cmt_btcusdt"

curl -s "${BASE_URL}/capi/v2/market/ticker?symbol=${SYMBOL}" | jq '.data | {symbol: .symbol, last: .last, high: .high_24h, low: .low_24h, volume: .volume_24h, markPrice: .markPrice}'

### Get All Tickers

curl -s "${BASE_URL}/capi/v2/market/tickers" | jq '.data[] | {symbol: .symbol, last: .last, change: .priceChangePercent, volume: .volume_24h}'

### Get Order Book

SYMBOL="cmt_btcusdt"

curl -s "${BASE_URL}/capi/v2/market/depth?symbol=${SYMBOL}&limit=15" | jq '.data | {asks: .asks[:5], bids: .bids[:5]}'

### Get Recent Trades

SYMBOL="cmt_btcusdt"
LIMIT="50"

curl -s "${BASE_URL}/capi/v2/market/trades?symbol=${SYMBOL}&limit=${LIMIT}" | jq '.data[] | {time: .time, price: .price, size: .size, side: (if .isBuyerMaker then "sell" else "buy" end)}'

### Get Candlestick Data

SYMBOL="cmt_btcusdt"
GRANULARITY="1h"    # 1m, 5m, 15m, 30m, 1h, 4h, 12h, 1d, 1w
LIMIT="100"

curl -s "${BASE_URL}/capi/v2/market/candles?symbol=${SYMBOL}&granularity=${GRANULARITY}&limit=${LIMIT}" | jq '.data[] | {timestamp: .[0], open: .[1], high: .[2], low: .[3], close: .[4], volume: .[5]}'

### Get Index Price

SYMBOL="cmt_btcusdt"

curl -s "${BASE_URL}/capi/v2/market/index?symbol=${SYMBOL}" | jq '.data | {symbol: .symbol, index: .index, timestamp: .timestamp}'

### Get Open Interest

SYMBOL="cmt_btcusdt"

curl -s "${BASE_URL}/capi/v2/market/open_interest?symbol=${SYMBOL}" | jq '.data[] | {symbol: .symbol, openInterest: .base_volume, value: .target_volume}'

### Get Current Funding Rate

SYMBOL="cmt_btcusdt"

curl -s "${BASE_URL}/capi/v2/market/currentFundRate?symbol=${SYMBOL}" | jq '.data[] | {symbol: .symbol, rate: .fundingRate, nextSettlement: .timestamp}'

### Get Historical Funding Rates

SYMBOL="cmt_btcusdt"
LIMIT="20"

curl -s "${BASE_URL}/capi/v2/market/getHistoryFundRate?symbol=${SYMBOL}&limit=${LIMIT}" | jq '.data[] | {symbol: .symbol, rate: .fundingRate, settleTime: .fundingTime}'

### Get Next Funding Time

SYMBOL="cmt_btcusdt"

curl -s "${BASE_URL}/capi/v2/market/funding_time?symbol=${SYMBOL}" | jq '.data | {symbol: .symbol, nextFundingTime: .fundingTime}'

### Get Account Assets

PATH_URL="/capi/v2/account/assets"
TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))")
SIGNATURE=$(generate_signature "GET" "$PATH_URL" "")

curl -s "${BASE_URL}${PATH_URL}" \\
  -H "ACCESS-KEY: ${API_KEY}" \\
  -H "ACCESS-SIGN: ${SIGNATURE}" \\
  -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \\
  -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \\
  -H "Content-Type: application/json" | jq '.data[] | {coin: .coinName, available: .available, frozen: .frozen, equity: .equity, unrealizedPnl: .unrealizePnl}'

### Get Account List with Settings

PATH_URL="/capi/v2/account/getAccounts"
TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))")
SIGNATURE=$(generate_signature "GET" "$PATH_URL" "")

curl -s "${BASE_URL}${PATH_URL}" \\
  -H "ACCESS-KEY: ${API_KEY}" \\
  -H "ACCESS-SIGN: ${SIGNATURE}" \\
  -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \\
  -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \\
  -H "Content-Type: application/json" | jq '.data'

### Get Single Account by Coin

COIN="USDT"

PATH_URL="/capi/v2/account/getAccount?coin=${COIN}"
TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))")
SIGNATURE=$(generate_signature "GET" "$PATH_URL" "")

curl -s "${BASE_URL}${PATH_URL}" \\
  -H "ACCESS-KEY: ${API_KEY}" \\
  -H "ACCESS-SIGN: ${SIGNATURE}" \\
  -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \\
  -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \\
  -H "Content-Type: application/json" | jq '.data'

### Get User Settings

SYMBOL="cmt_btcusdt"

PATH_URL="/capi/v2/account/settings?symbol=${SYMBOL}"
TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))")
SIGNATURE=$(generate_signature "GET" "$PATH_URL" "")

curl -s "${BASE_URL}${PATH_URL}" \\
  -H "ACCESS-KEY: ${API_KEY}" \\
  -H "ACCESS-SIGN: ${SIGNATURE}" \\
  -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \\
  -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \\
  -H "Content-Type: application/json" | jq '.data'

### Change Leverage

SYMBOL="cmt_btcusdt"
LEVERAGE="20"
MARGIN_MODE="1"        # 1=Cross, 3=Isolated

PATH_URL="/capi/v2/account/leverage"
BODY="{\\"symbol\\":\\"${SYMBOL}\\",\\"marginMode\\":${MARGIN_MODE},\\"longLeverage\\":\\"${LEVERAGE}\\",\\"shortLeverage\\":\\"${LEVERAGE}\\"}"
TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))")
SIGNATURE=$(generate_signature "POST" "$PATH_URL" "$BODY")

curl -s -X POST "${BASE_URL}${PATH_URL}" \\
  -H "ACCESS-KEY: ${API_KEY}" \\
  -H "ACCESS-SIGN: ${SIGNATURE}" \\
  -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \\
  -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \\
  -H "Content-Type: application/json" \\
  -d "$BODY" | jq '.'

### Adjust Position Margin (Isolated Only)

POSITION_ID="123456789"      # Isolated position ID
AMOUNT="100"                 # Positive to add, negative to reduce

PATH_URL="/capi/v2/account/adjustMargin"
BODY="{\\"coinId\\":2,\\"isolatedPositionId\\":${POSITION_ID},\\"collateralAmount\\":\\"${AMOUNT}\\"}"
TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))")
SIGNATURE=$(generate_signature "POST" "$PATH_URL" "$BODY")

curl -s -X POST "${BASE_URL}${PATH_URL}" \\
  -H "ACCESS-KEY: ${API_KEY}" \\
  -H "ACCESS-SIGN: ${SIGNATURE}" \\
  -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \\
  -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \\
  -H "Content-Type: application/json" \\
  -d "$BODY" | jq '.'

### Auto Margin Top-Up (Isolated Only)

POSITION_ID="123456789"      # Isolated position ID
AUTO_APPEND="true"           # true to enable, false to disable

PATH_URL="/capi/v2/account/modifyAutoAppendMargin"
BODY="{\\"positionId\\":${POSITION_ID},\\"autoAppendMargin\\":${AUTO_APPEND}}"
TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))")
SIGNATURE=$(generate_signature "POST" "$PATH_URL" "$BODY")

curl -s -X POST "${BASE_URL}${PATH_URL}" \\
  -H "ACCESS-KEY: ${API_KEY}" \\
  -H "ACCESS-SIGN: ${SIGNATURE}" \\
  -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \\
  -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \\
  -H "Content-Type: application/json" \\
  -d "$BODY" | jq '.'

### Get Account Bill History

COIN="USDT"
LIMIT="20"

PATH_URL="/capi/v2/account/bills"
BODY="{\\"coin\\":\\"${COIN}\\",\\"limit\\":${LIMIT}}"
TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))")
SIGNATURE=$(generate_signature "POST" "$PATH_URL" "$BODY")

curl -s -X POST "${BASE_URL}${PATH_URL}" \\
  -H "ACCESS-KEY: ${API_KEY}" \\
  -H "ACCESS-SIGN: ${SIGNATURE}" \\
  -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \\
  -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \\
  -H "Content-Type: application/json" \\
  -d "$BODY" | jq '.data'

### Get All Positions

PATH_URL="/capi/v2/account/position/allPosition"
TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))")
SIGNATURE=$(generate_signature "GET" "$PATH_URL" "")

curl -s "${BASE_URL}${PATH_URL}" \\
  -H "ACCESS-KEY: ${API_KEY}" \\
  -H "ACCESS-SIGN: ${SIGNATURE}" \\
  -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \\
  -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \\
  -H "Content-Type: application/json" | jq '.data[] | select(.size != "0") | {symbol: .symbol, side: .side, size: .size, leverage: .leverage, unrealizedPnl: .unrealizePnl, entryPrice: .avg_cost}'

### Get Single Position

SYMBOL="cmt_btcusdt"

PATH_URL="/capi/v2/account/position/singlePosition?symbol=${SYMBOL}"
TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))")
SIGNATURE=$(generate_signature "GET" "$PATH_URL" "")

curl -s "${BASE_URL}${PATH_URL}" \\
  -H "ACCESS-KEY: ${API_KEY}" \\
  -H "ACCESS-SIGN: ${SIGNATURE}" \\
  -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \\
  -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \\
  -H "Content-Type: application/json" | jq '.data[] | {symbol: .symbol, side: .side, size: .size, leverage: .leverage, unrealizedPnl: .unrealizePnl, entryPrice: .avg_cost, liquidationPrice: .liq_price}'

### Change Margin Mode

SYMBOL="cmt_btcusdt"
MARGIN_MODE="1"        # 1=Cross, 3=Isolated

PATH_URL="/capi/v2/account/position/changeHoldModel"
BODY="{\\"symbol\\":\\"${SYMBOL}\\",\\"marginMode\\":${MARGIN_MODE},\\"separatedMode\\":1}"
TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))")
SIGNATURE=$(generate_signature "POST" "$PATH_URL" "$BODY")

curl -s -X POST "${BASE_URL}${PATH_URL}" \\
  -H "ACCESS-KEY: ${API_KEY}" \\
  -H "ACCESS-SIGN: ${SIGNATURE}" \\
  -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \\
  -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \\
  -H "Content-Type: application/json" \\
  -d "$BODY" | jq '.'

### Place Market Order

SYMBOL="cmt_btcusdt"
SIZE="10"              # Quantity in contracts
TYPE="1"               # 1=Open Long, 2=Open Short, 3=Close Long, 4=Close Short
CLIENT_OID="order_$(date +%s)"

PATH_URL="/capi/v2/order/placeOrder"
BODY="{\\"symbol\\":\\"${SYMBOL}\\",\\"client_oid\\":\\"${CLIENT_OID}\\",\\"size\\":\\"${SIZE}\\",\\"type\\":\\"${TYPE}\\",\\"order_type\\":\\"0\\",\\"match_price\\":\\"1\\",\\"price\\":\\"0\\"}"
TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))")
SIGNATURE=$(generate_signature "POST" "$PATH_URL" "$BODY")

curl -s -X POST "${BASE_URL}${PATH_URL}" \\
  -H "ACCESS-KEY: ${API_KEY}" \\
  -H "ACCESS-SIGN: ${SIGNATURE}" \\
  -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \\
  -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \\
  -H "Content-Type: application/json" \\
  -d "$BODY" | jq '.'

### Place Limit Order

SYMBOL="cmt_btcusdt"
SIZE="10"
TYPE="1"               # 1=Open Long
PRICE="90000"          # Limit price
ORDER_TYPE="0"         # 0=Normal, 1=Post-only, 2=FOK, 3=IOC
CLIENT_OID="limit_$(date +%s)"

PATH_URL="/capi/v2/order/placeOrder"
BODY="{\\"symbol\\":\\"${SYMBOL}\\",\\"client_oid\\":\\"${CLIENT_OID}\\",\\"size\\":\\"${SIZE}\\",\\"type\\":\\"${TYPE}\\",\\"order_type\\":\\"${ORDER_TYPE}\\",\\"match_price\\":\\"0\\",\\"price\\":\\"${PRICE}\\"}"
TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))")
SIGNATURE=$(generate_signature "POST" "$PATH_URL" "$BODY")

curl -s -X POST "${BASE_URL}${PATH_URL}" \\
  -H "ACCESS-KEY: ${API_KEY}" \\
  -H "ACCESS-SIGN: ${SIGNATURE}" \\
  -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \\
  -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \\
  -H "Content-Type: application/json" \\
  -d "$BODY" | jq '.'

### Get Open Orders

PATH_URL="/capi/v2/order/current"
TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))")
SIGNATURE=$(generate_signature "GET" "$PATH_URL" "")

curl -s "${BASE_URL}${PATH_URL}" \\
  -H "ACCESS-KEY: ${API_KEY}" \\
  -H "ACCESS-SIGN: ${SIGNATURE}" \\
  -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \\
  -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \\
  -H "Content-Type: application/json" | jq '.data[] | {orderId: .order_id, symbol: .symbol, side: .type, price: .price, size: .size, status: .status}'

### Get Order Details

ORDER_ID="1234567890"

PATH_URL="/capi/v2/order/detail?orderId=${ORDER_ID}"
TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))")
SIGNATURE=$(generate_signature "GET" "$PATH_URL" "")

curl -s "${BASE_URL}${PATH_URL}" \\
  -H "ACCESS-KEY: ${API_KEY}" \\
  -H "ACCESS-SIGN: ${SIGNATURE}" \\
  -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \\
  -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \\
  -H "Content-Type: application/json" | jq '.data'

### Get Order History

SYMBOL="cmt_btcusdt"
LIMIT="50"

PATH_URL="/capi/v2/order/history?symbol=${SYMBOL}&limit=${LIMIT}"
TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))")
SIGNATURE=$(generate_signature "GET" "$PATH_URL" "")

curl -s "${BASE_URL}${PATH_URL}" \\
  -H "ACCESS-KEY: ${API_KEY}" \\
  -H "ACCESS-SIGN: ${SIGNATURE}" \\
  -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \\
  -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \\
  -H "Content-Type: application/json" | jq '.data[] | {orderId: .order_id, symbol: .symbol, side: .type, price: .price, size: .size, filledSize: .filled_qty, status: .status}'

### Get Trade Fills

SYMBOL="cmt_btcusdt"
LIMIT="50"

PATH_URL="/capi/v2/order/fills?symbol=${SYMBOL}&limit=${LIMIT}"
TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))")
SIGNATURE=$(generate_signature "GET" "$PATH_URL" "")

curl -s "${BASE_URL}${PATH_URL}" \\
  -H "ACCESS-KEY: ${API_KEY}" \\
  -H "ACCESS-SIGN: ${SIGNATURE}" \\
  -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \\
  -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \\
  -H "Content-Type: application/json" | jq '.data[] | {tradeId: .trade_id, orderId: .order_id, symbol: .symbol, price: .price, size: .size, fee: .fee, time: .created_at}'

### Cancel Order

ORDER_ID="1234567890"

PATH_URL="/capi/v2/order/cancel_order"
BODY="{\\"orderId\\":\\"${ORDER_ID}\\"}"
TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))")
SIGNATURE=$(generate_signature "POST" "$PATH_URL" "$BODY")

curl -s -X POST "${BASE_URL}${PATH_URL}" \\
  -H "ACCESS-KEY: ${API_KEY}" \\
  -H "ACCESS-SIGN: ${SIGNATURE}" \\
  -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \\
  -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \\
  -H "Content-Type: application/json" \\
  -d "$BODY" | jq '.'

### Cancel All Orders

SYMBOL="cmt_btcusdt"    # Optional: omit to cancel all

PATH_URL="/capi/v2/order/cancelAllOrders"
BODY="{\\"symbol\\":\\"${SYMBOL}\\"}"
TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))")
SIGNATURE=$(generate_signature "POST" "$PATH_URL" "$BODY")

curl -s -X POST "${BASE_URL}${PATH_URL}" \\
  -H "ACCESS-KEY: ${API_KEY}" \\
  -H "ACCESS-SIGN: ${SIGNATURE}" \\
  -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \\
  -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \\
  -H "Content-Type: application/json" \\
  -d "$BODY" | jq '.'

### Close All Positions

PATH_URL="/capi/v2/order/closePositions"
BODY="{}"
TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))")
SIGNATURE=$(generate_signature "POST" "$PATH_URL" "$BODY")

curl -s -X POST "${BASE_URL}${PATH_URL}" \\
  -H "ACCESS-KEY: ${API_KEY}" \\
  -H "ACCESS-SIGN: ${SIGNATURE}" \\
  -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \\
  -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \\
  -H "Content-Type: application/json" \\
  -d "$BODY" | jq '.'

### Place Trigger Order (Stop-Loss / Take-Profit)

SYMBOL="cmt_btcusdt"
SIZE="10"
TYPE="1"               # 1=Open Long, 2=Open Short, 3=Close Long, 4=Close Short
TRIGGER_PRICE="95000"  # Price that triggers the order
EXECUTE_PRICE="0"      # 0 for market, or limit price
TRIGGER_TYPE="1"       # 1=Fill price, 2=Mark price, 3=Index price
CLIENT_OID="trigger_$(date +%s)"

PATH_URL="/capi/v2/order/plan_order"
BODY="{\\"symbol\\":\\"${SYMBOL}\\",\\"client_oid\\":\\"${CLIENT_OID}\\",\\"size\\":\\"${SIZE}\\",\\"type\\":\\"${TYPE}\\",\\"trigger_price\\":\\"${TRIGGER_PRICE}\\",\\"execute_price\\":\\"${EXECUTE_PRICE}\\",\\"trend_side\\":\\"1\\",\\"trigger_type\\":\\"${TRIGGER_TYPE}\\"}"
TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))")
SIGNATURE=$(generate_signature "POST" "$PATH_URL" "$BODY")

curl -s -X POST "${BASE_URL}${PATH_URL}" \\
  -H "ACCESS-KEY: ${API_KEY}" \\
  -H "ACCESS-SIGN: ${SIGNATURE}" \\
  -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \\
  -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \\
  -H "Content-Type: application/json" \\
  -d "$BODY" | jq '.'

### Get Current Trigger Orders

SYMBOL="cmt_btcusdt"

PATH_URL="/capi/v2/order/currentPlan?symbol=${SYMBOL}"
TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))")
SIGNATURE=$(generate_signature "GET" "$PATH_URL" "")

curl -s "${BASE_URL}${PATH_URL}" \\
  -H "ACCESS-KEY: ${API_KEY}" \\
  -H "ACCESS-SIGN: ${SIGNATURE}" \\
  -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \\
  -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \\
  -H "Content-Type: application/json" | jq '.data[] | {orderId: .order_id, symbol: .symbol, triggerPrice: .trigger_price, size: .size, type: .type}'

### Get Trigger Order History

SYMBOL="cmt_btcusdt"
LIMIT="50"

PATH_URL="/capi/v2/order/historyPlan?symbol=${SYMBOL}&limit=${LIMIT}"
TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))")
SIGNATURE=$(generate_signature "GET" "$PATH_URL" "")

curl -s "${BASE_URL}${PATH_URL}" \\
  -H "ACCESS-KEY: ${API_KEY}" \\
  -H "ACCESS-SIGN: ${SIGNATURE}" \\
  -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \\
  -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \\
  -H "Content-Type: application/json" | jq '.data[] | {orderId: .order_id, symbol: .symbol, triggerPrice: .trigger_price, status: .status}'

### Cancel Trigger Order

ORDER_ID="1234567890"

PATH_URL="/capi/v2/order/cancel_plan"
BODY="{\\"orderId\\":\\"${ORDER_ID}\\"}"
TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))")
SIGNATURE=$(generate_signature "POST" "$PATH_URL" "$BODY")

curl -s -X POST "${BASE_URL}${PATH_URL}" \\
  -H "ACCESS-KEY: ${API_KEY}" \\
  -H "ACCESS-SIGN: ${SIGNATURE}" \\
  -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \\
  -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \\
  -H "Content-Type: application/json" \\
  -d "$BODY" | jq '.'

### Place TP/SL Order

SYMBOL="cmt_btcusdt"
SIDE="1"               # 1=Long position, 2=Short position
TP_PRICE="100000"      # Take profit trigger price
SL_PRICE="85000"       # Stop loss trigger price
TP_SIZE="10"           # Take profit size (0 for entire position)
SL_SIZE="10"           # Stop loss size (0 for entire position)

PATH_URL="/capi/v2/order/placeTpSlOrder"
BODY="{\\"symbol\\":\\"${SYMBOL}\\",\\"side\\":\\"${SIDE}\\",\\"tp_trigger_price\\":\\"${TP_PRICE}\\",\\"sl_trigger_price\\":\\"${SL_PRICE}\\",\\"tp_size\\":\\"${TP_SIZE}\\",\\"sl_size\\":\\"${SL_SIZE}\\"}"
TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))")
SIGNATURE=$(generate_signature "POST" "$PATH_URL" "$BODY")

curl -s -X POST "${BASE_URL}${PATH_URL}" \\
  -H "ACCESS-KEY: ${API_KEY}" \\
  -H "ACCESS-SIGN: ${SIGNATURE}" \\
  -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \\
  -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \\
  -H "Content-Type: application/json" \\
  -d "$BODY" | jq '.'

### Modify TP/SL Order

SYMBOL="cmt_btcusdt"
SIDE="1"               # 1=Long position, 2=Short position
TP_PRICE="105000"      # New take profit price
SL_PRICE="82000"       # New stop loss price

PATH_URL="/capi/v2/order/modifyTpSlOrder"
BODY="{\\"symbol\\":\\"${SYMBOL}\\",\\"side\\":\\"${SIDE}\\",\\"tp_trigger_price\\":\\"${TP_PRICE}\\",\\"sl_trigger_price\\":\\"${SL_PRICE}\\"}"
TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))")
SIGNATURE=$(generate_signature "POST" "$PATH_URL" "$BODY")

curl -s -X POST "${BASE_URL}${PATH_URL}" \\
  -H "ACCESS-KEY: ${API_KEY}" \\
  -H "ACCESS-SIGN: ${SIGNATURE}" \\
  -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \\
  -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \\
  -H "Content-Type: application/json" \\
  -d "$BODY" | jq '.'

### Upload AI Trading Log

AI_LOG="Trading decision: Buy BTC based on momentum indicators"
ORDER_ID="1234567890"

PATH_URL="/capi/v2/order/uploadAiLog"
BODY="{\\"orderId\\":\\"${ORDER_ID}\\",\\"aiLog\\":\\"${AI_LOG}\\"}"
TIMESTAMP=$(python3 -c "import time; print(int(time.time() * 1000))")
SIGNATURE=$(generate_signature "POST" "$PATH_URL" "$BODY")

curl -s -X POST "${BASE_URL}${PATH_URL}" \\
  -H "ACCESS-KEY: ${API_KEY}" \\
  -H "ACCESS-SIGN: ${SIGNATURE}" \\
  -H "ACCESS-PASSPHRASE: ${PASSPHRASE}" \\
  -H "ACCESS-TIMESTAMP: ${TIMESTAMP}" \\
  -H "Content-Type: application/json" \\
  -d "$BODY" | jq '.'

### Order Types

typeDescription1Open Long (buy to open)2Open Short (sell to open)3Close Long (sell to close)4Close Short (buy to close)

### Execution Types

order_typeDescription0Normal order1Post-only (maker only)2FOK (fill or kill)3IOC (immediate or cancel)

### Price Types

match_priceDescription0Limit order1Market order

### Margin Modes

marginModeDescription1Cross margin3Isolated margin

### Trigger Types

trigger_typeDescription1Fill price (last trade price)2Mark price3Index price

### Popular Trading Pairs

PairDescriptioncmt_btcusdtBitcoin / USDTcmt_ethusdtEthereum / USDTcmt_solusdtSolana / USDTcmt_xrpusdtXRP / USDTcmt_dogeusdtDogecoin / USDTcmt_bnbusdtBNB / USDT

### Safety Rules

ALWAYS display order details before execution
VERIFY trading pair and quantity
CHECK account balance before trading
WARN about leverage risks (up to 125x)
NEVER execute without user confirmation
CONFIRM position closure before executing

### Error Codes

CodeDescriptionSolution00000Success-40001Invalid parameterCheck parameter format40101Invalid API key/signatureVerify credentials and timestamp40301IP not whitelistedAdd IP to whitelist42901Rate limit exceededReduce request frequency50001Internal errorRetry after delay

### Rate Limits

CategoryIP LimitUID LimitMarket Data20 req/secN/AAccount Info10 req/sec10 req/secOrder Placement10 req/sec10 req/sec

### Additional Resources

WEEX
Base URL: https://api-contract.weex.com
API Reference
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: bowen31337
- Version: 1.1.0
## Source health
- Status: healthy
- Source download looks usable.
- Yavira can redirect you to the upstream package for this source.
- Health scope: source
- Reason: direct_download_ok
- Checked at: 2026-05-07T17:22:31.273Z
- Expires at: 2026-05-14T17:22:31.273Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/weex-trading-skills)
- [Send to Agent page](https://openagent3.xyz/skills/weex-trading-skills/agent)
- [JSON manifest](https://openagent3.xyz/skills/weex-trading-skills/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/weex-trading-skills/agent.md)
- [Download page](https://openagent3.xyz/downloads/weex-trading-skills)