Complete Binance integration - world's largest crypto exchange. Trade spot, futures with up to 125x leverage, staking, and portfolio management. Use to check balances, open/close positions, set stop loss and take profit, check PnL, and any Binance operation.
Professional skill for trading on Binance - the world's largest crypto exchange.
Save to ~/.openclaw/credentials/binance.json:
{
"apiKey": "YOUR_API_KEY",
"secretKey": "YOUR_SECRET_KEY"
}
[!IMPORTANT] FOR AI ASSISTANT: Do not ask the user for their API keys. The user has already configured
~/.openclaw/credentials/binance.json. You MUST load the API keys from this file in all your bash scripts like this:API_KEY=$(jq -r .apiKey ~/.openclaw/credentials/binance.json) SECRET=$(jq -r .secretKey ~/.openclaw/credentials/binance.json)
export BINANCE_API_KEY="your_api_key"
export BINANCE_SECRET="your_secret_key"
TIMESTAMP=$(date +%s%3N)
QUERY="timestamp=${TIMESTAMP}"
SIGNATURE=$(echo -n "$QUERY" | openssl dgst -sha256 -hmac "$SECRET" | cut -d' ' -f2)
curl -s "https://api.binance.com/api/v3/account?${QUERY}&signature=${SIGNATURE}" \
-H "X-MBX-APIKEY: ${API_KEY}" | jq '[.balances[] | select(.free != "0.00000000")]'
curl -s "https://api.binance.com/api/v3/ticker/price?symbol=BTCUSDT" | jq '.'
TIMESTAMP=$(date +%s%3N)
QUERY="timestamp=${TIMESTAMP}"
SIGNATURE=$(echo -n "$QUERY" | openssl dgst -sha256 -hmac "$SECRET" | cut -d' ' -f2)
curl -s "https://fapi.binance.com/fapi/v2/positionRisk?${QUERY}&signature=${SIGNATURE}" \
-H "X-MBX-APIKEY: ${API_KEY}" | jq '[.[] | select(.positionAmt != "0")]'
SYMBOL="BTCUSDT"
SIDE="BUY"
QUANTITY="0.001"
TIMESTAMP=$(date +%s%3N)
QUERY="symbol=${SYMBOL}&side=${SIDE}&type=MARKET&quantity=${QUANTITY}×tamp=${TIMESTAMP}"
SIGNATURE=$(echo -n "$QUERY" | openssl dgst -sha256 -hmac "$SECRET" | cut -d' ' -f2)
curl -s -X POST "https://fapi.binance.com/fapi/v1/order?${QUERY}&signature=${SIGNATURE}" \
-H "X-MBX-APIKEY: ${API_KEY}" | jq '.'
SYMBOL="BTCUSDT"
SIDE="SELL"
QUANTITY="0.001"
TIMESTAMP=$(date +%s%3N)
QUERY="symbol=${SYMBOL}&side=${SIDE}&type=MARKET&quantity=${QUANTITY}×tamp=${TIMESTAMP}"
SIGNATURE=$(echo -n "$QUERY" | openssl dgst -sha256 -hmac "$SECRET" | cut -d' ' -f2)
curl -s -X POST "https://fapi.binance.com/fapi/v1/order?${QUERY}&signature=${SIGNATURE}" \
-H "X-MBX-APIKEY: ${API_KEY}" | jq '.'
SYMBOL="BTCUSDT"
SIDE="SELL" # To close LONG use SELL, to close SHORT use BUY
STOP_PRICE="75000"
TIMESTAMP=$(date +%s%3N)
QUERY="symbol=${SYMBOL}&side=${SIDE}&type=STOP_MARKET&stopPrice=${STOP_PRICE}&closePosition=true×tamp=${TIMESTAMP}"
SIGNATURE=$(echo -n "$QUERY" | openssl dgst -sha256 -hmac "$SECRET" | cut -d' ' -f2)
curl -s -X POST "https://fapi.binance.com/fapi/v1/order?${QUERY}&signature=${SIGNATURE}" \
-H "X-MBX-APIKEY: ${API_KEY}" | jq '.'
SYMBOL="BTCUSDT"
SIDE="SELL" # To close LONG use SELL, to close SHORT use BUY
TP_PRICE="85000"
TIMESTAMP=$(date +%s%3N)
QUERY="symbol=${SYMBOL}&side=${SIDE}&type=TAKE_PROFIT_MARKET&stopPrice=${TP_PRICE}&closePosition=true×tamp=${TIMESTAMP}"
SIGNATURE=$(echo -n "$QUERY" | openssl dgst -sha256 -hmac "$SECRET" | cut -d' ' -f2)
curl -s -X POST "https://fapi.binance.com/fapi/v1/order?${QUERY}&signature=${SIGNATURE}" \
-H "X-MBX-APIKEY: ${API_KEY}" | jq '.'
# First, get current position quantity
POSITION=$(curl -s "https://fapi.binance.com/fapi/v2/positionRisk?timestamp=${TIMESTAMP}&signature=${SIGNATURE}" \
-H "X-MBX-APIKEY: ${API_KEY}" | jq -r '.[] | select(.symbol=="BTCUSDT") | .positionAmt')
# If POSITION > 0, it's LONG, close with SELL
# If POSITION < 0, it's SHORT, close with BUY
SYMBOL="BTCUSDT"
LEVERAGE="10" # 1 to 125
TIMESTAMP=$(date +%s%3N)
QUERY="symbol=${SYMBOL}&leverage=${LEVERAGE}×tamp=${TIMESTAMP}"
SIGNATURE=$(echo -n "$QUERY" | openssl dgst -sha256 -hmac "$SECRET" | cut -d' ' -f2)
curl -s -X POST "https://fapi.binance.com/fapi/v1/leverage?${QUERY}&signature=${SIGNATURE}" \
-H "X-MBX-APIKEY: ${API_KEY}" | jq '.'
SYMBOL="ETHUSDT"
QUANTITY="0.1"
TIMESTAMP=$(date +%s%3N)
QUERY="symbol=${SYMBOL}&side=BUY&type=MARKET&quantity=${QUANTITY}×tamp=${TIMESTAMP}"
SIGNATURE=$(echo -n "$QUERY" | openssl dgst -sha256 -hmac "$SECRET" | cut -d' ' -f2)
curl -s -X POST "https://api.binance.com/api/v3/order?${QUERY}&signature=${SIGNATURE}" \
-H "X-MBX-APIKEY: ${API_KEY}" | jq '.'
SYMBOL="ETHUSDT"
QUANTITY="0.1"
TIMESTAMP=$(date +%s%3N)
QUERY="symbol=${SYMBOL}&side=SELL&type=MARKET&quantity=${QUANTITY}×tamp=${TIMESTAMP}"
SIGNATURE=$(echo -n "$QUERY" | openssl dgst -sha256 -hmac "$SECRET" | cut -d' ' -f2)
curl -s -X POST "https://api.binance.com/api/v3/order?${QUERY}&signature=${SIGNATURE}" \
-H "X-MBX-APIKEY: ${API_KEY}" | jq '.'
TIMESTAMP=$(date +%s%3N)
QUERY="timestamp=${TIMESTAMP}"
SIGNATURE=$(echo -n "$QUERY" | openssl dgst -sha256 -hmac "$SECRET" | cut -d' ' -f2)
# Futures
curl -s "https://fapi.binance.com/fapi/v1/openOrders?${QUERY}&signature=${SIGNATURE}" \
-H "X-MBX-APIKEY: ${API_KEY}" | jq '.'
SYMBOL="BTCUSDT"
ORDER_ID="123456789"
TIMESTAMP=$(date +%s%3N)
QUERY="symbol=${SYMBOL}&orderId=${ORDER_ID}×tamp=${TIMESTAMP}"
SIGNATURE=$(echo -n "$QUERY" | openssl dgst -sha256 -hmac "$SECRET" | cut -d' ' -f2)
curl -s -X DELETE "https://fapi.binance.com/fapi/v1/order?${QUERY}&signature=${SIGNATURE}" \
-H "X-MBX-APIKEY: ${API_KEY}" | jq '.'
SYMBOL="BTCUSDT"
TIMESTAMP=$(date +%s%3N)
QUERY="symbol=${SYMBOL}×tamp=${TIMESTAMP}"
SIGNATURE=$(echo -n "$QUERY" | openssl dgst -sha256 -hmac "$SECRET" | cut -d' ' -f2)
curl -s "https://fapi.binance.com/fapi/v1/userTrades?${QUERY}&signature=${SIGNATURE}" \
-H "X-MBX-APIKEY: ${API_KEY}" | jq '.[-10:]'
TIMESTAMP=$(date +%s%3N)
QUERY="timestamp=${TIMESTAMP}"
SIGNATURE=$(echo -n "$QUERY" | openssl dgst -sha256 -hmac "$SECRET" | cut -d' ' -f2)
curl -s "https://fapi.binance.com/fapi/v2/balance?${QUERY}&signature=${SIGNATURE}" \
-H "X-MBX-APIKEY: ${API_KEY}" | jq '[.[] | select(.balance != "0")]'
| Pair | Description |
|---|---|
| BTCUSDT | Bitcoin |
| ETHUSDT | Ethereum |
| BNBUSDT | BNB |
| SOLUSDT | Solana |
| XRPUSDT | XRP |
| DOGEUSDT | Dogecoin |
| ADAUSDT | Cardano |
| AVAXUSDT | Avalanche |
Khi người dùng nói kiểu:
vào lệnh với $20chia 3 lệnh futuresscan lệnh tốt nhất rồi vào luônthì bắt buộc làm theo đúng quy trình này, không được bỏ bước:
fapi/v2/account, fapi/v2/balanceavailableBalancetotalWalletBalancetotalInitialMargintotalOpenOrderInitialMarginopen positionsopen ordersMIN_NOTIONAL / LOT_SIZE khiến vốn người dùng không vào nổiXRPUSDT, ADAUSDT, SUIUSDT, DOGEUSDT hơn BTCUSDTMIN_NOTIONALLOT_SIZE.minQtyLOT_SIZE.stepSizequantityPrecisionwalletBalanceavailableBalanceavailableBalanceISOLATED3x đến 5xpositionRisk để xác nhận vị thế thực sự đã mởSTOP_MARKET / TAKE_PROFIT_MARKET thường bị lỗi kiểu -4120, tự chuyển sang Algo Order API/fapi/v1/algoOrderopenAlgoOrdersxx USDTKhi người dùng nói kiểu:
vào lệnh với 20 usdtfutures 30 usdtscan rồi vào giúp tôi với 50 usdtthì dùng preset sau:
Ưu tiên theo thứ tự này:
Không được đảo ngược thành:
availableBalance chỉ để ôm thêm một lệnh chất lượng kém hơn.Chỉ được báo hoàn tất khi đã có đủ:
futures thì không được suy luận từ số dư spot.20 USDT futures nhưng availableBalance thực tế thấp sau khi vị thế mở; phải kiểm tra lại account sau mỗi lệnh.BTCUSDT thường không hợp vốn quá nhỏ vì ràng buộc MIN_NOTIONAL/LOT_SIZE.không vào được chỉ từ lỗi -2019 nếu chưa kiểm tra lại xem lệnh trước đó đã khớp một phần hay đã mở vị thế hay chưa.số lượng lệnh hơn chất lượng lệnh. Với tài khoản nhỏ, cố đủ 3 lệnh thường làm chất lượng setup giảm đi và tăng tương quan rủi ro.positionRiskopenOrdersopenAlgoOrders
để tránh bỏ vị thế trần.Skill created by Total Easy Software - Clayton Martins