binance_discover_traded_symbols
Found no account-pairs endpoint? Discover likely traded symbols by matching held assets and dust conversions against exchangeInfo to prune trade-history lookups.
Instructions
Work out which symbols this account plausibly traded — Binance will not tell you.
There is no endpoint that lists an account's traded pairs. Binance staff answered the question twice on their own developer forum, and both answers are workarounds: keep a local record from the user-data websocket stream, or infer the pairs from the account's assets (dev.binance.vision threads 4810 and 4329). This tool is the second answer, made cheap.
It unions the assets the account visibly holds or held — GET /api/v3/account
(weight 20, zero balances omitted), POST /sapi/v3/asset/getUserAsset (weight 5, the
funding/spot asset list) and GET /sapi/v1/asset/dribblet (weight 1, the last 100
dust conversions) — then crosses them with every exchangeInfo symbol (weight 20,
fetched once per process and cached) whose base asset is a candidate and whose
quote asset is either whitelisted (quote_assets) or itself a candidate. Total
discovery cost: ~46 IP weight of the 6000/min budget.
Blind spot, stated plainly: the match is on the base asset, so an asset bought and
then fully sold within spot — never deposited, withdrawn or dust-converted — leaves no
trace to discover, and its pair is missed. Name it in extra_assets. Matching on the
quote side too would not rescue it and costs a fortune: on the real exchangeInfo,
USDT alone drags in 493 TRADING pairs (9,860 weight).
When to Use:
Before
binance_get_all_my_trades, to see (and prune) the symbol list and its cost.To answer "which pairs have I ever traded?" without spending 74,000 weight.
When NOT to Use:
When you already know the pairs — pass them to
binance_get_all_my_tradesdirectly.To read balances — use
binance_get_spot_account/binance_get_user_assets.
Returns:
Markdown: the candidate assets with their source counts, the sorted symbol list, and
the estimated cost of walking it (20 IP weight per symbol). JSON: the same, as
{"assets": [...], "symbols": [...], "estimated_weight": N}.
Examples: params = {} params = {"extra_assets": ["SOL", "ADA"], "quote_assets": ["USDT", "BTC"]} params = {"include_break": true}
Error Handling: /sapi endpoints do not exist on the spot testnet (404). -2015 means the key lacks Reading or the IP is not allowlisted.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |