Skills spot
Binance Spot request using the Binance API. Authentication requires API key and secret key. Supports testnet and mainnet.
git clone https://github.com/openclaw/skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/awessh/spot" ~/.claude/skills/clawdbot-skills-spot-4945db && rm -rf "$T"
skills/awessh/spot/SKILL.mdBinance Spot Skill
Spot request on Binance using authenticated API endpoints. Requires API key and secret key for certain endpoints. Return the result in JSON format.
Quick Reference
| Endpoint | Description | Required | Optional | Authentication |
|---|---|---|---|---|
(GET) | Exchange information | None | symbol, symbols, permissions, showPermissionSets, symbolStatus | No |
(GET) | Test connectivity | None | None | No |
(GET) | Check server time | None | None | No |
(GET) | Compressed/Aggregate trades list | symbol | fromId, startTime, endTime, limit | No |
(GET) | Current average price | symbol | None | No |
(GET) | Order book | symbol | limit, symbolStatus | No |
(GET) | Old trade lookup | symbol | limit, fromId | No |
(GET) | Kline/Candlestick data | symbol, interval | startTime, endTime, timeZone, limit | No |
(GET) | Rolling window price change statistics | None | symbol, symbols, windowSize, type, symbolStatus | No |
(GET) | 24hr ticker price change statistics | None | symbol, symbols, type, symbolStatus | No |
(GET) | Symbol order book ticker | None | symbol, symbols, symbolStatus | No |
(GET) | Symbol price ticker | None | symbol, symbols, symbolStatus | No |
(GET) | Trading Day Ticker | None | symbol, symbols, timeZone, type, symbolStatus | No |
(GET) | Recent trades list | symbol | limit | No |
(GET) | UIKlines | symbol, interval | startTime, endTime, timeZone, limit | No |
(DELETE) | Cancel All Open Orders on a Symbol | symbol | recvWindow | Yes |
(GET) | Current open orders | None | symbol, recvWindow | Yes |
(POST) | New order | symbol, side, type | timeInForce, quantity, quoteOrderQty, price, newClientOrderId, strategyId, strategyType, stopPrice, trailingDelta, icebergQty, newOrderRespType, selfTradePreventionMode, pegPriceType, pegOffsetValue, pegOffsetType, recvWindow | Yes |
(DELETE) | Cancel order | symbol | orderId, origClientOrderId, newClientOrderId, cancelRestrictions, recvWindow | Yes |
(GET) | Query order | symbol | orderId, origClientOrderId, recvWindow | Yes |
(PUT) | Order Amend Keep Priority | symbol, newQty | orderId, origClientOrderId, newClientOrderId, recvWindow | Yes |
(POST) | Cancel an Existing Order and Send a New Order | symbol, side, type, cancelReplaceMode | timeInForce, quantity, quoteOrderQty, price, cancelNewClientOrderId, cancelOrigClientOrderId, cancelOrderId, newClientOrderId, strategyId, strategyType, stopPrice, trailingDelta, icebergQty, newOrderRespType, selfTradePreventionMode, cancelRestrictions, orderRateLimitExceededMode, pegPriceType, pegOffsetValue, pegOffsetType, recvWindow | Yes |
(POST) | New OCO - Deprecated | symbol, side, quantity, price, stopPrice | listClientOrderId, limitClientOrderId, limitStrategyId, limitStrategyType, limitIcebergQty, trailingDelta, stopClientOrderId, stopStrategyId, stopStrategyType, stopLimitPrice, stopIcebergQty, stopLimitTimeInForce, newOrderRespType, selfTradePreventionMode, recvWindow | Yes |
(POST) | Test new order | symbol, side, type | computeCommissionRates, timeInForce, quantity, quoteOrderQty, price, newClientOrderId, strategyId, strategyType, stopPrice, trailingDelta, icebergQty, newOrderRespType, selfTradePreventionMode, pegPriceType, pegOffsetValue, pegOffsetType, recvWindow | Yes |
(DELETE) | Cancel Order list | symbol | orderListId, listClientOrderId, newClientOrderId, recvWindow | Yes |
(GET) | Query Order list | None | orderListId, origClientOrderId, recvWindow | Yes |
(POST) | New Order list - OCO | symbol, side, quantity, aboveType, belowType | listClientOrderId, aboveClientOrderId, aboveIcebergQty, abovePrice, aboveStopPrice, aboveTrailingDelta, aboveTimeInForce, aboveStrategyId, aboveStrategyType, abovePegPriceType, abovePegOffsetType, abovePegOffsetValue, belowClientOrderId, belowIcebergQty, belowPrice, belowStopPrice, belowTrailingDelta, belowTimeInForce, belowStrategyId, belowStrategyType, belowPegPriceType, belowPegOffsetType, belowPegOffsetValue, newOrderRespType, selfTradePreventionMode, recvWindow | Yes |
(POST) | New Order List - OPO | symbol, workingType, workingSide, workingPrice, workingQuantity, pendingType, pendingSide | listClientOrderId, newOrderRespType, selfTradePreventionMode, workingClientOrderId, workingIcebergQty, workingTimeInForce, workingStrategyId, workingStrategyType, workingPegPriceType, workingPegOffsetType, workingPegOffsetValue, pendingClientOrderId, pendingPrice, pendingStopPrice, pendingTrailingDelta, pendingIcebergQty, pendingTimeInForce, pendingStrategyId, pendingStrategyType, pendingPegPriceType, pendingPegOffsetType, pendingPegOffsetValue, recvWindow | Yes |
(POST) | New Order List - OPOCO | symbol, workingType, workingSide, workingPrice, workingQuantity, pendingSide, pendingAboveType | listClientOrderId, newOrderRespType, selfTradePreventionMode, workingClientOrderId, workingIcebergQty, workingTimeInForce, workingStrategyId, workingStrategyType, workingPegPriceType, workingPegOffsetType, workingPegOffsetValue, pendingAboveClientOrderId, pendingAbovePrice, pendingAboveStopPrice, pendingAboveTrailingDelta, pendingAboveIcebergQty, pendingAboveTimeInForce, pendingAboveStrategyId, pendingAboveStrategyType, pendingAbovePegPriceType, pendingAbovePegOffsetType, pendingAbovePegOffsetValue, pendingBelowType, pendingBelowClientOrderId, pendingBelowPrice, pendingBelowStopPrice, pendingBelowTrailingDelta, pendingBelowIcebergQty, pendingBelowTimeInForce, pendingBelowStrategyId, pendingBelowStrategyType, pendingBelowPegPriceType, pendingBelowPegOffsetType, pendingBelowPegOffsetValue, recvWindow | Yes |
(POST) | New Order list - OTO | symbol, workingType, workingSide, workingPrice, workingQuantity, pendingType, pendingSide, pendingQuantity | listClientOrderId, newOrderRespType, selfTradePreventionMode, workingClientOrderId, workingIcebergQty, workingTimeInForce, workingStrategyId, workingStrategyType, workingPegPriceType, workingPegOffsetType, workingPegOffsetValue, pendingClientOrderId, pendingPrice, pendingStopPrice, pendingTrailingDelta, pendingIcebergQty, pendingTimeInForce, pendingStrategyId, pendingStrategyType, pendingPegPriceType, pendingPegOffsetType, pendingPegOffsetValue, recvWindow | Yes |
(POST) | New Order list - OTOCO | symbol, workingType, workingSide, workingPrice, workingQuantity, pendingSide, pendingQuantity, pendingAboveType | listClientOrderId, newOrderRespType, selfTradePreventionMode, workingClientOrderId, workingIcebergQty, workingTimeInForce, workingStrategyId, workingStrategyType, workingPegPriceType, workingPegOffsetType, workingPegOffsetValue, pendingAboveClientOrderId, pendingAbovePrice, pendingAboveStopPrice, pendingAboveTrailingDelta, pendingAboveIcebergQty, pendingAboveTimeInForce, pendingAboveStrategyId, pendingAboveStrategyType, pendingAbovePegPriceType, pendingAbovePegOffsetType, pendingAbovePegOffsetValue, pendingBelowType, pendingBelowClientOrderId, pendingBelowPrice, pendingBelowStopPrice, pendingBelowTrailingDelta, pendingBelowIcebergQty, pendingBelowTimeInForce, pendingBelowStrategyId, pendingBelowStrategyType, pendingBelowPegPriceType, pendingBelowPegOffsetType, pendingBelowPegOffsetValue, recvWindow | Yes |
(POST) | New order using SOR | symbol, side, type, quantity | timeInForce, price, newClientOrderId, strategyId, strategyType, icebergQty, newOrderRespType, selfTradePreventionMode, recvWindow | Yes |
(POST) | Test new order using SOR | symbol, side, type, quantity | computeCommissionRates, timeInForce, price, newClientOrderId, strategyId, strategyType, icebergQty, newOrderRespType, selfTradePreventionMode, recvWindow | Yes |
(GET) | Account information | None | omitZeroBalances, recvWindow | Yes |
(GET) | Query Commission Rates | symbol | None | Yes |
(GET) | Query all Order lists | None | fromId, startTime, endTime, limit, recvWindow | Yes |
(GET) | All orders | symbol | orderId, startTime, endTime, limit, recvWindow | Yes |
(GET) | Query Allocations | symbol | startTime, endTime, fromAllocationId, limit, orderId, recvWindow | Yes |
(GET) | Query relevant filters | symbol | recvWindow | Yes |
(GET) | Query Prevented Matches | symbol | preventedMatchId, orderId, fromPreventedMatchId, limit, recvWindow | Yes |
(GET) | Account trade list | symbol | orderId, startTime, endTime, fromId, limit, recvWindow | Yes |
(GET) | Query Open Order lists | None | recvWindow | Yes |
(GET) | Query Order Amendments | symbol, orderId | fromExecutionId, limit, recvWindow | Yes |
(GET) | Query Unfilled Order Count | None | recvWindow | Yes |
Parameters
Common Parameters
- symbol: Symbol to query (e.g., BNBUSDT)
- symbols: List of symbols to query
- permissions: List of permissions to query
- showPermissionSets: Controls whether the content of the
field is populated or not. Defaults topermissionSets
(e.g., true)true - symbol: (e.g., BNBUSDT)
- fromId: ID to get aggregate trades from INCLUSIVE. (e.g., 1)
- startTime: Timestamp in ms to get aggregate trades from INCLUSIVE. (e.g., 1735693200000)
- endTime: Timestamp in ms to get aggregate trades until INCLUSIVE. (e.g., 1735693200000)
- limit: Default: 500; Maximum: 1000. (e.g., 500)
- timeZone: Default: 0 (UTC)
- recvWindow: The value cannot be greater than
. Supports up to three decimal places of precision (e.g., 6000.346) so that microseconds may be specified. (e.g., 5000)60000 - timestamp: (e.g., 1)
- quantity: (e.g., 1)
- quoteOrderQty: (e.g., 1)
- price: (e.g., 400)
- newClientOrderId: A unique id among open orders. Automatically generated if not sent. Orders with the same
can be accepted only when the previous one is filled, otherwise the order will be rejected.newClientOrderID - strategyId: (e.g., 1)
- strategyType: The value cannot be less than
. (e.g., 1)1000000 - stopPrice: Used with
,STOP_LOSS
,STOP_LOSS_LIMIT
, andTAKE_PROFIT
orders. (e.g., 1)TAKE_PROFIT_LIMIT - trailingDelta: See Trailing Stop order FAQ. (e.g., 1)
- icebergQty: Used with
,LIMIT
, andSTOP_LOSS_LIMIT
to create an iceberg order. (e.g., 1)TAKE_PROFIT_LIMIT - pegOffsetValue: Priceleveltopegthepriceto(max:100). SeePeggedOrdersInfo (e.g., 1)
- orderId: (e.g., 1)
- origClientOrderId:
- newQty:
must be greater than 0 and less than the order's quantity. (e.g., 1)newQty - cancelNewClientOrderId: Used to uniquely identify this cancel. Automatically generated by default.
- cancelOrigClientOrderId: Either
orcancelOrderId
must be sent. </br> If bothcancelOrigClientOrderId
andcancelOrderId
parameters are provided, thecancelOrigClientOrderId
is searched first, then thecancelOrderId
from that result is checked against that order. </br> If both conditions are not met the request will be rejected.cancelOrigClientOrderId - cancelOrderId: Either
orcancelOrderId
must be sent. </br>If bothcancelOrigClientOrderId
andcancelOrderId
parameters are provided, thecancelOrigClientOrderId
is searched first, then thecancelOrderId
from that result is checked against that order. </br>If both conditions are not met the request will be rejected. (e.g., 1)cancelOrigClientOrderId - listClientOrderId: A unique Id for the entire orderList
- quantity: (e.g., 1)
- limitClientOrderId: A unique Id for the limit order
- price: (e.g., 1)
- limitStrategyId: (e.g., 1)
- limitStrategyType: The value cannot be less than
. (e.g., 1)1000000 - limitIcebergQty: Used to make the
leg an iceberg order. (e.g., 1)LIMIT_MAKER - stopClientOrderId: A unique Id for the stop loss/stop loss limit leg
- stopPrice: (e.g., 1)
- stopStrategyId: (e.g., 1)
- stopStrategyType: The value cannot be less than
. (e.g., 1)1000000 - stopLimitPrice: If provided,
is required. (e.g., 1)stopLimitTimeInForce - stopIcebergQty: Used with
leg to make an iceberg order. (e.g., 1)STOP_LOSS_LIMIT - computeCommissionRates: Default:
See Commissions FAQ to learn more.false - orderListId: Either
ororderListId
must be provided (e.g., 1)listClientOrderId - aboveClientOrderId: Arbitrary unique ID among open orders for the above order. Automatically generated if not sent
- aboveIcebergQty: Note that this can only be used if
isaboveTimeInForce
. (e.g., 1)GTC - abovePrice: Can be used if
isaboveType
,STOP_LOSS_LIMIT
, orLIMIT_MAKER
to specify the limit price. (e.g., 1)TAKE_PROFIT_LIMIT - aboveStopPrice: Can be used if
isaboveType
,STOP_LOSS
,STOP_LOSS_LIMIT
,TAKE_PROFIT
. EitherTAKE_PROFIT_LIMIT
oraboveStopPrice
or both, must be specified. (e.g., 1)aboveTrailingDelta - aboveTrailingDelta: See Trailing Stop order FAQ. (e.g., 1)
- aboveStrategyId: Arbitrary numeric value identifying the above order within an order strategy. (e.g., 1)
- aboveStrategyType: Arbitrary numeric value identifying the above order strategy. Values smaller than 1000000 are reserved and cannot be used. (e.g., 1)
- abovePegOffsetValue: (e.g., 1)
- belowClientOrderId: Arbitrary unique ID among open orders for the below order. Automatically generated if not sent
- belowIcebergQty: Note that this can only be used if
isbelowTimeInForce
. (e.g., 1)GTC - belowPrice: Can be used if
isbelowType
,STOP_LOSS_LIMIT
, orLIMIT_MAKER
to specify the limit price. (e.g., 1)TAKE_PROFIT_LIMIT - belowStopPrice: Can be used if
isbelowType
,STOP_LOSS
orSTOP_LOSS_LIMIT, TAKE_PROFIT
Either belowStopPrice or belowTrailingDelta or both, must be specified. (e.g., 1)TAKE_PROFIT_LIMIT - belowTrailingDelta: See Trailing Stop order FAQ. (e.g., 1)
- belowStrategyId: Arbitrary numeric value identifying the below order within an order strategy. (e.g., 1)
- belowStrategyType: Arbitrary numeric value identifying the below order strategy. Values smaller than 1000000 are reserved and cannot be used. (e.g., 1)
- belowPegOffsetValue: (e.g., 1)
- workingClientOrderId: Arbitrary unique ID among open orders for the working order. Automatically generated if not sent.
- workingPrice: (e.g., 1)
- workingQuantity: Sets the quantity for the working order. (e.g., 1)
- workingIcebergQty: This can only be used if
isworkingTimeInForce
, or ifGTC
isworkingType
. (e.g., 1)LIMIT_MAKER - workingStrategyId: Arbitrary numeric value identifying the working order within an order strategy. (e.g., 1)
- workingStrategyType: Arbitrary numeric value identifying the working order strategy. Values smaller than 1000000 are reserved and cannot be used. (e.g., 1)
- workingPegOffsetValue: (e.g., 1)
- pendingClientOrderId: Arbitrary unique ID among open orders for the pending order. Automatically generated if not sent.
- pendingPrice: (e.g., 1)
- pendingStopPrice: (e.g., 1)
- pendingTrailingDelta: (e.g., 1)
- pendingIcebergQty: This can only be used if
ispendingTimeInForce
or ifGTC
ispendingType
. (e.g., 1)LIMIT_MAKER - pendingStrategyId: Arbitrary numeric value identifying the pending order within an order strategy. (e.g., 1)
- pendingStrategyType: Arbitrary numeric value identifying the pending order strategy. Values smaller than 1000000 are reserved and cannot be used. (e.g., 1)
- pendingPegOffsetValue: (e.g., 1)
- pendingAboveClientOrderId: Arbitrary unique ID among open orders for the pending above order. Automatically generated if not sent.
- pendingAbovePrice: Can be used if
ispendingAboveType
,STOP_LOSS_LIMIT
, orLIMIT_MAKER
to specify the limit price. (e.g., 1)TAKE_PROFIT_LIMIT - pendingAboveStopPrice: Can be used if
ispendingAboveType
,STOP_LOSS
,STOP_LOSS_LIMIT
,TAKE_PROFIT
(e.g., 1)TAKE_PROFIT_LIMIT - pendingAboveTrailingDelta: See Trailing Stop FAQ (e.g., 1)
- pendingAboveIcebergQty: This can only be used if
ispendingAboveTimeInForce
or ifGTC
ispendingAboveType
. (e.g., 1)LIMIT_MAKER - pendingAboveStrategyId: Arbitrary numeric value identifying the pending above order within an order strategy. (e.g., 1)
- pendingAboveStrategyType: Arbitrary numeric value identifying the pending above order strategy. Values smaller than 1000000 are reserved and cannot be used. (e.g., 1)
- pendingAbovePegOffsetValue: (e.g., 1)
- pendingBelowClientOrderId: Arbitrary unique ID among open orders for the pending below order. Automatically generated if not sent.
- pendingBelowPrice: Can be used if
ispendingBelowType
orSTOP_LOSS_LIMIT
to specify limit price (e.g., 1)TAKE_PROFIT_LIMIT - pendingBelowStopPrice: Can be used if
ispendingBelowType
,STOP_LOSS
. EitherSTOP_LOSS_LIMIT, TAKE_PROFIT or TAKE_PROFIT_LIMIT
orpendingBelowStopPrice
or both, must be specified. (e.g., 1)pendingBelowTrailingDelta - pendingBelowTrailingDelta: (e.g., 1)
- pendingBelowIcebergQty: This can only be used if
ispendingBelowTimeInForce
, or ifGTC
ispendingBelowType
. (e.g., 1)LIMIT_MAKER - pendingBelowStrategyId: Arbitrary numeric value identifying the pending below order within an order strategy. (e.g., 1)
- pendingBelowStrategyType: Arbitrary numeric value identifying the pending below order strategy. Values smaller than 1000000 are reserved and cannot be used. (e.g., 1)
- pendingBelowPegOffsetValue: (e.g., 1)
- pendingQuantity: Sets the quantity for the pending order. (e.g., 1)
- omitZeroBalances: When set to
, emits only the non-zero balances of an account. Default value:truefalse - fromAllocationId: (e.g., 1)
- timestamp: (e.g., 1)
- preventedMatchId: (e.g., 1)
- fromPreventedMatchId: (e.g., 1)
- orderId: (e.g., 1)
- fromExecutionId: (e.g., 1)
- limit: Default:500; Maximum: 1000 (e.g., 500)
Enums
- interval: 1s | 1m | 3m | 5m | 15m | 30m | 1h | 2h | 4h | 6h | 8h | 12h | 1d | 3d | 1w | 1M
- windowSize: 1m | 2m | 3m | 4m | 5m | 6m | 7m | 8m | 9m | 10m | 11m | 12m | 13m | 14m | 15m | 16m | 17m | 18m | 19m | 20m | 21m | 22m | 23m | 24m | 25m | 26m | 27m | 28m | 29m | 30m | 31m | 32m | 33m | 34m | 35m | 36m | 37m | 38m | 39m | 40m | 41m | 42m | 43m | 44m | 45m | 46m | 47m | 48m | 49m | 50m | 51m | 52m | 53m | 54m | 55m | 56m | 57m | 58m | 59m | 1h | 2h | 3h | 4h | 5h | 6h | 7h | 8h | 9h | 10h | 11h | 12h | 13h | 14h | 15h | 16h | 17h | 18h | 19h | 20h | 21h | 22h | 23h | 1d | 2d | 3d | 4d | 5d | 6d
- type: FULL | MINI
- type: MARKET | LIMIT | STOP_LOSS | STOP_LOSS_LIMIT | TAKE_PROFIT | TAKE_PROFIT_LIMIT | LIMIT_MAKER | NON_REPRESENTABLE
- selfTradePreventionMode: NONE | EXPIRE_TAKER | EXPIRE_MAKER | EXPIRE_BOTH | DECREMENT | NON_REPRESENTABLE
- symbolStatus: TRADING | END_OF_DAY | HALT | BREAK | NON_REPRESENTABLE
- timeInForce: GTC | IOC | FOK | NON_REPRESENTABLE
- pegPriceType: PRIMARY_PEG | MARKET_PEG | NON_REPRESENTABLE
- pegOffsetType: PRICE_LEVEL | NON_REPRESENTABLE
- newOrderRespType: ACK | RESULT | FULL | MARKET | LIMIT
- cancelRestrictions: ONLY_NEW | NEW | ONLY_PARTIALLY_FILLED | PARTIALLY_FILLED
- cancelReplaceMode: STOP_ON_FAILURE | ALLOW_FAILURE
- orderRateLimitExceededMode: DO_NOTHING | CANCEL_ONLY
- stopLimitTimeInForce: GTC | IOC | FOK
- side: BUY | SELL
- aboveType: STOP_LOSS_LIMIT | STOP_LOSS | LIMIT_MAKER | TAKE_PROFIT | TAKE_PROFIT_LIMIT
- aboveTimeInForce: GTC | IOC | FOK
- abovePegPriceType: PRIMARY_PEG | MARKET_PEG
- abovePegOffsetType: PRICE_LEVEL
- belowType: STOP_LOSS | STOP_LOSS_LIMIT | TAKE_PROFIT | TAKE_PROFIT_LIMIT
- belowTimeInForce: GTC | IOC | FOK
- belowPegPriceType: PRIMARY_PEG | MARKET_PEG
- belowPegOffsetType: PRICE_LEVEL
- workingType: LIMIT | LIMIT_MAKER
- workingPegPriceType: PRIMARY_PEG | MARKET_PEG
- workingPegOffsetType: PRICE_LEVEL
- pendingPegPriceType: PRIMARY_PEG | MARKET_PEG
- pendingPegOffsetType: PRICE_LEVEL
- pendingAboveType: STOP_LOSS_LIMIT | STOP_LOSS | LIMIT_MAKER | TAKE_PROFIT | TAKE_PROFIT_LIMIT
- pendingAbovePegPriceType: PRIMARY_PEG | MARKET_PEG
- pendingAbovePegOffsetType: PRICE_LEVEL
- pendingBelowType: STOP_LOSS | STOP_LOSS_LIMIT | TAKE_PROFIT | TAKE_PROFIT_LIMIT
- pendingBelowPegPriceType: PRIMARY_PEG | MARKET_PEG
- pendingBelowPegOffsetType: PRICE_LEVEL
- workingSide: BUY | SELL
- workingTimeInForce: GTC | IOC | FOK
- pendingType: LIMIT | MARKET | STOP_LOSS | STOP_LOSS_LIMIT | TAKE_PROFIT | TAKE_PROFIT_LIMIT | LIMIT_MAKER
- pendingSide: BUY | SELL
- pendingTimeInForce: GTC | IOC | FOK
- pendingAboveTimeInForce: GTC | IOC | FOK
- pendingBelowTimeInForce: GTC | IOC | FOK
Authentication
For endpoints that require authentication, you will need to provide Binance API credentials. Required credentials:
- apiKey: Your Binance API key (for header)
- secretKey: Your Binance API secret (for signing)
Base URLs:
- Mainnet: https://api.binance.com
- Testnet: https://testnet.binance.vision
- Demo: https://demo-api.binance.com
Security
Share Credentials
Users can provide Binance API credentials by sending a file where the content is in the following format:
abc123...xyz secret123...key
Never Display Full Secrets
When showing credentials to users:
- API Key: Show first 5 + last 4 characters:
su1Qc...8akf - Secret Key: Always mask, show only last 5:
***...aws1
Example response when asked for credentials: Account: main API Key: su1Qc...8akf Secret: ***...aws1 Environment: Mainnet
Listing Accounts
When listing accounts, show names and environment only — never keys: Binance Accounts:
- main (Mainnet/Testnet)
- testnet-dev (Testnet)
- futures-keys (Mainnet)
Transactions in Mainnet
When performing transactions in mainnet, always confirm with the user before proceeding by asking them to write "CONFIRM" to proceed.
Binance Accounts
main
- API Key: your_mainnet_api_key
- Secret: your_mainnet_secret
- Testnet: false
testnet-dev
- API Key: your_testnet_api_key
- Secret: your_testnet_secret
- Testnet: true
TOOLS.md Structure
## Binance Accounts ### main - API Key: abc123...xyz - Secret: secret123...key - Testnet: false - Description: Primary trading account ### testnet-dev - API Key: test456...abc - Secret: testsecret...xyz - Testnet: true - Description: Development/testing ### futures-keys - API Key: futures789...def - Secret: futuressecret...uvw - Testnet: false - Description: Futures trading account
Agent Behavior
- Credentials requested: Mask secrets (show last 5 chars only)
- Listing accounts: Show names and environment, never keys
- Account selection: Ask if ambiguous, default to main
- When doing a transaction in mainnet, confirm with user before by asking to write "CONFIRM" to proceed
- New credentials: Prompt for name, environment, signing mode
Adding New Accounts
When user provides new credentials:
- Ask for account name
- Ask: Mainnet, Testnet or Demo
- Store in
with masked display confirmationTOOLS.md
Signing Requests
All trading endpoints require HMAC SHA256 signature:
- Build query string with all params + timestamp (Unix ms)
- Sign query string with secretKey using HMAC SHA256, RSA, or Ed25519 (depending on account config)
- Append signature to query string
- Include
headerX-MBX-APIKEY
User Agent Header
Include
User-Agent header with the following string: binance-spot/1.0.1 (Skill)
See
for implementation details.references/authentication.md