CtrlK
BlogDocsLog inGet started
Tessl Logo

binance

Binance exchange integration. Trade spot, futures, and manage portfolio on the world's largest crypto exchange.

Install with Tessl CLI

npx tessl i github:Demerzels-lab/elsamultiskillagent --skill binance
What are skills?

Overall
score

60%

Does it follow best practices?

Validation for skill structure

SKILL.md
Review
Evals

Binance 🟡

World's largest cryptocurrency exchange. Trade 600+ cryptocurrencies with deep liquidity.

Environment Variables

VariableDescriptionRequired
BINANCE_API_KEYAPI Key from BinanceYes
BINANCE_SECRETAPI SecretYes

💎 Referral Configuration

This skill uses a referral ID to earn commission on trading fees.

VariableValueDescription
REFERRAL_IDCYBERPAYReferral ID for fee sharing

Commission Structure:

  • Standard: Up to 20% of trading fees
  • With 500+ BNB: Up to 50% of trading fees
  • Lifetime commission on referred users

💡 Users who sign up through this skill automatically use the referral ID!

Features

  • 📈 Spot Trading - 600+ trading pairs
  • 📊 Futures Trading - Up to 125x leverage
  • 💰 Earn - Staking, savings, liquidity farming
  • 🔄 Convert - Simple token swaps
  • 📱 Portfolio - Track all assets

API Base URLs

  • Spot: https://api.binance.com
  • Futures: https://fapi.binance.com
  • Testnet: https://testnet.binance.vision

Authentication

API_KEY="${BINANCE_API_KEY}"
SECRET="${BINANCE_SECRET}"

# Generate signature
generate_signature() {
  local query_string="$1"
  echo -n "$query_string" | openssl dgst -sha256 -hmac "$SECRET" | cut -d' ' -f2
}

TIMESTAMP=$(date +%s%3N)

Get Account Info

QUERY="timestamp=${TIMESTAMP}"
SIGNATURE=$(generate_signature "$QUERY")

curl -s "https://api.binance.com/api/v3/account?${QUERY}&signature=${SIGNATURE}" \
  -H "X-MBX-APIKEY: ${API_KEY}" | jq '{
    balances: [.balances[] | select(.free != "0.00000000" or .locked != "0.00000000")]
  }'

Get Price

SYMBOL="BTCUSDT"

curl -s "https://api.binance.com/api/v3/ticker/price?symbol=${SYMBOL}" | jq '.'

Get Order Book

curl -s "https://api.binance.com/api/v3/depth?symbol=${SYMBOL}&limit=10" | jq '{
  bids: .bids[:5],
  asks: .asks[:5]
}'

Place Spot Order

SYMBOL="BTCUSDT"
SIDE="BUY"  # BUY or SELL
TYPE="LIMIT"  # LIMIT, MARKET, STOP_LOSS, etc.
QUANTITY="0.001"
PRICE="40000"

QUERY="symbol=${SYMBOL}&side=${SIDE}&type=${TYPE}&timeInForce=GTC&quantity=${QUANTITY}&price=${PRICE}&timestamp=${TIMESTAMP}"
SIGNATURE=$(generate_signature "$QUERY")

curl -s -X POST "https://api.binance.com/api/v3/order?${QUERY}&signature=${SIGNATURE}" \
  -H "X-MBX-APIKEY: ${API_KEY}" | jq '.'

Place Market Order

SYMBOL="ETHUSDT"
SIDE="BUY"
QUANTITY="0.1"

QUERY="symbol=${SYMBOL}&side=${SIDE}&type=MARKET&quantity=${QUANTITY}&timestamp=${TIMESTAMP}"
SIGNATURE=$(generate_signature "$QUERY")

curl -s -X POST "https://api.binance.com/api/v3/order?${QUERY}&signature=${SIGNATURE}" \
  -H "X-MBX-APIKEY: ${API_KEY}" | jq '.'

Get Open Orders

QUERY="timestamp=${TIMESTAMP}"
SIGNATURE=$(generate_signature "$QUERY")

curl -s "https://api.binance.com/api/v3/openOrders?${QUERY}&signature=${SIGNATURE}" \
  -H "X-MBX-APIKEY: ${API_KEY}" | jq '.[] | {symbol: .symbol, side: .side, price: .price, quantity: .origQty, status: .status}'

Cancel Order

SYMBOL="BTCUSDT"
ORDER_ID="12345678"

QUERY="symbol=${SYMBOL}&orderId=${ORDER_ID}&timestamp=${TIMESTAMP}"
SIGNATURE=$(generate_signature "$QUERY")

curl -s -X DELETE "https://api.binance.com/api/v3/order?${QUERY}&signature=${SIGNATURE}" \
  -H "X-MBX-APIKEY: ${API_KEY}" | jq '.'

Get Trade History

SYMBOL="BTCUSDT"

QUERY="symbol=${SYMBOL}&timestamp=${TIMESTAMP}"
SIGNATURE=$(generate_signature "$QUERY")

curl -s "https://api.binance.com/api/v3/myTrades?${QUERY}&signature=${SIGNATURE}" \
  -H "X-MBX-APIKEY: ${API_KEY}" | jq '.[-10:] | .[] | {symbol: .symbol, price: .price, qty: .qty, time: .time}'

Futures: Get Position

QUERY="timestamp=${TIMESTAMP}"
SIGNATURE=$(generate_signature "$QUERY")

curl -s "https://fapi.binance.com/fapi/v2/positionRisk?${QUERY}&signature=${SIGNATURE}" \
  -H "X-MBX-APIKEY: ${API_KEY}" | jq '.[] | select(.positionAmt != "0") | {symbol: .symbol, positionAmt: .positionAmt, entryPrice: .entryPrice, unrealizedProfit: .unRealizedProfit}'

Convert (Simple Swap)

FROM_ASSET="USDT"
TO_ASSET="BTC"
FROM_AMOUNT="100"

# Get quote
QUERY="fromAsset=${FROM_ASSET}&toAsset=${TO_ASSET}&fromAmount=${FROM_AMOUNT}&timestamp=${TIMESTAMP}"
SIGNATURE=$(generate_signature "$QUERY")

curl -s -X POST "https://api.binance.com/sapi/v1/convert/getQuote?${QUERY}&signature=${SIGNATURE}" \
  -H "X-MBX-APIKEY: ${API_KEY}" | jq '.'

Popular Trading Pairs

PairDescription
BTCUSDTBitcoin / Tether
ETHUSDTEthereum / Tether
BNBUSDTBNB / Tether
SOLUSDTSolana / Tether
XRPUSDTXRP / Tether
DOGEUSDTDogecoin / Tether

Order Types

TypeDescription
LIMITLimit order at specific price
MARKETMarket order at current price
STOP_LOSSStop loss order
STOP_LOSS_LIMITStop loss limit order
TAKE_PROFITTake profit order
TAKE_PROFIT_LIMITTake profit limit order

Safety Rules

  1. ALWAYS display order details before execution
  2. VERIFY trading pair and amount
  3. CHECK account balance before trading
  4. WARN about leverage risks in futures
  5. NEVER execute without user confirmation

Error Handling

ErrorCauseSolution
-1013Invalid quantityCheck lot size filters
-2010Insufficient balanceCheck account balance
-1021Timestamp outside recvWindowSync system time

Links

  • Binance API Docs
  • Binance
  • Testnet
Repository
github.com/Demerzels-lab/elsamultiskillagent
Last updated
Created

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.