binance-wallet-tracker
Wallet tracking and monitoring on Binance Web3. Monitor token/trade activity for private groups or public Smart Money/KOL data. Four domains: (A) Discovery — consensus, pioneer, leaderboard diff, token buyer lookup, time-window summaries, similar wallets; (B) Evaluation — token risk (tokenRiskLevel
By binance · 771 installs
npx skills add binance/binance-skills-hub --skill binance-wallet-tracker
Source repository · Upstream listing
Binance Wallet Tracker Skill
On chain wallet tracking and monitoring. Monitor token level and trade level activity for private groups or public Smart Money / KOL data. Includes 9 built in analysis scenarios for replay and pattern detection.
Prerequisites
This skill requires the baw CLI ( @binance/agentic wallet npm package). If baw is not found:
Verify: baw version should print 1.6.2 or higher. If installation fails or the user doesn't have Node.js, inform them that Node.js = 18 is required.
When to Use
Discovery
User intent Command
Consensus tokens (many buyers) tracker token query → sort by consensusCount
Pioneer tokens (≤2 traders) tracker token query → filter launchTime + consensusCount ≤ 2
Leaderboard diff (untracked wallets) leaderboard query (leaderboard skill) + tracker address list → diff
Token based buyer lookup tracker tx query → client side filter by ca
Time window summary tracker token query period 4h + tracker tx query
Similar wallet discovery leaderboard analyze (leaderboard skill) → archetype matching
Evaluation
User intent Command
Token risk screening tracker token query → filter tokenRiskLevel ≥ 3 + consensusCount ≥ 3
Group rhythm profiling tracker tx query → per address rhythm analysis
Follow list assessment tracker follow + leaderboard analyze (cross skill)
Token heat analysis tracker tx query → aggregate by ca
Replay
User intent Command
4h comprehensive summary tracker token query period 4h + tracker tx query
Accumulation vs distribution (Accumulation/Distribution) tracker token query → buyCount / sellCount per address
Sector rotation tracker tx query → compare token top across time windows
Anomaly large orders tracker tx query → anomaly detection
Round trip (Round Trip) tracker tx query → round trip detection
First mover + leader follower tracker tx query → first mover + leader follower
Wake up detection tracker tx query → wake up detection
Bot like behavior tracker tx query → bot like detection
Full 9 scenario analysis rules: [ references/analytics.md ](references/analytics.md)
Management
User intent Command
Create / rename group tracker group create/update
Batch import addresses tracker address batch
Add single address tracker address add
Update label / link to group tracker address update l + tracker address link
Delete addresses tracker address delete
Follow / unfollow address tracker address follow/unfollow
View follow list tracker follow
Search address (fuzzy) tracker address search
Supported Chains
Chain chainId
BSC 56
Solana CT 501
Base 8453
Ethereum 1
Robinhood 4663
This table lists chains verified for tracker use; it is a subset of baw wallet chains (which returns all wallet supported chains, e.g. Arbitrum 42161, Polygon 137). Before treating a chain as unsupported for tracking, probe it first — the wallet chain list is dynamic.
Command Tree
All commands support json for structured output.
token query and tx query require either group id (private group) or tag type (public KOL/SMY). Calling without either returns an error.
tag type accepts: kol (KOL), smy (Smart Money).
Token Monitor (A2)
Returns per token aggregated data: token name, CA, price, market cap, volume, addressList[] (per address buy/sell/inflow), launchTime , tokenRiskLevel , tokenTag .
Consensus computation : The API does NOT return top level traderNum or inFlow . The CLI aggregates consensusCount = addressList.length , netInflow = Σ addressList[].inflow , countBuy / countSell = Σ buy/sell counts. Use these fields directly.
Per address fields : address , label , buyCount , sellCount , inflow , tokenQty , latestTxTime , lastTrade , addressLogoUrl .
Full parameter and return field reference: [ references/cli.md ](references/cli.md)
Tx Monitor (A3)
Returns per trade records: txHash , logId , address , ts , tradeSideCategory , txUsdValue , tokenPrice , currentPrice , ca , tokenName , marketCap , tokenRiskLevel , tokenTag , plus optional toAddress , toLabel , nativePrice , txNativeTokenQty , tokenDecimals , tokenSupply , launchTime , rwaType .
⚠️ Critical: ts is in SECONDS (not milliseconds) — 10 digit Unix timestamp. All time window calculations (round trip <1h, wake up 72h, co buy 10min window) must use seconds. A2's latestTxTime / launchTime ARE in milliseconds (13 digit).
No pagination — returns all matching records in one response.
ca/address filtering (Skill responsibility) : The A3 API does NOT accept ca or address as filter parameters. The Skill handles this filtering: fetch all records from tx query , then filter by matching ca (contract address) or address (wallet) in the results. This enables the core scenario "who in a group is buying a specific token" — fetch the group's full trade flow, then filter by ca .
Follow Query (A4)
Returns a map where key = followed address, value = {label} .
Limitation : Only queries the current user's follow list. You cannot query another user's follow list. For "evaluate follow list" scenarios, combine with binance leaderboard skill's leaderboard analyze to score each followed address.
Group Management (B1)
Group fields : groupId , groupName , addressCount , displayOrder . Sort groups by displayOrder : All= 1, Default=0, others sequential.
Address Management (B2)
Import defaults : allowOverwrite defaults to true (overwrites existing label). enforce defaults to false . Use no overwrite to disable overwrite.
Follow response : Returns {address, followed: true} — NO groupId field. followed is a boolean status flag.
Address search/list fields : Returns address , label , emoji , color , groupId , groupName , isFollowed , addressLogoUrl , genericAddressTagList , lastActiveTime , nativeTokenQty .
Full parameter and return field reference: [ references/cli.md ](references/cli.md)
Core Rules
Consensus & Inflow Computation (A2)
The API does NOT return top level traderNum , inFlow , countBuy , or countSell fields. The CLI aggregates these from addressList[] and exposes them as:
consensusCount (Consensus) = addressList.length
netInflow (Net Inflow) = Σ addressList[].inflow
countBuy (accumulation count) = Σ addressList[].buyCount
countSell (distribution count) = Σ addressList[].sellCount
Use these CLI aggregated fields directly — no need to re compute from addressList .
Accumulation vs Distribution
buyCount and sellCount are returned per address directly. No need to aggregate tradeSideCategory — use these fields directly for Accumulation/Distribution analysis.
Client Side Filtering (Skill responsibility)
The A2/A3 APIs do NOT accept ca or address as filter parameters. The caList param on A2 token/query is accepted but silently ignored by the backend. The Skill handles this filtering:
1. Fetch all records via token query or tx query (no ca/address filter)
2. Filter by matching ca (contract address) or address (wallet) in the results
This enables core scenarios like "who in a group is buying a specific token" — fetch the group's full trade flow, then filter by ca .
This affects: Find Buyers by Token (co buy), token based buyer lookup, and any scenario requiring single token or single address focus.
Follow List Limitation (A4)
tracker follow only queries the current user's follow list (chainId only, no address param). You cannot evaluate another user's follow list. For "evaluate follow list" scenarios, combine with binance leaderboard skill's analyze command.
Group Field Names
group list returns displayOrder . Sort groups by displayOrder : All= 1, Default=0, others sequential.
Follow Response Fields
address follow response returns {address, followed: true} . followed is a boolean status flag.
Write Back Confirmation
After any write operation (create/update/delete/import/follow/unfollow/link), re fetch the affected resource to confirm the operation succeeded — this guards against agentSessionId silent expiry and backend silent failures.
Readback failure handling : If readback shows the operation didn't take effect (e.g. address still exists after delete, group not found after create), tell the user "Operation may not have taken effect, please try again later" — never mention backend bugs, silent failures, or error codes.
Destructive Operation Safety
Delete, link, and unfollow operations require y flag (or interactive confirmation) before execution. Always confirm with the user before executing destructive operations.
EVM Address Case Normalization (delete only)
The backend stores EVM addresses as lowercase (import API lowercases them), but address/delete does case sensitive matching. If the user provides an EIP 55 mixed case address (e.g. 0x52908400098527886E0F7030069857D03E3248B4 ), delete will silently fail — return success:true without actually deleting. The CLI does NOT normalize; it passes through as is.
Skill responsibility : Before calling baw tracker address delete , normalize EVM addresses to lowercase:
EVM ( 0x + 40 hex): address.toLowerCase()
Solana (Base58, case sensitive): pass through as is — do NOT lowercase
This is verified against QA: import with mixed case stores as lowercase, delete with lowercase succeeds, delete with mixed case returns success:true but address remains.
Batch Import Behavior
address batch / address add :
allowOverwrite defaults to true — existing labels are overwritten
enforce defaults to false — skips validation enforcement
Chain is specified by c — CLI does NOT auto detect address format
Cross chain auto dispatch (Skill responsibility) : When the user provides a mixed list of EVM + Solana addresses, the Skill must:
1. Classify each address by format:
EVM: matches ^0x[a fA F0 9]{40}$ → chainId 56 (BSC) or 8453 (Base) — determine by user context or ask
Solana: Base58, 32 44 chars, no 0x prefix → chainId CT 501
2. Group addresses by chain
3. Call baw tracker address batch c <chainId once per group
4. Aggregate results (new/exist/overwrite counts) across all chains
Real Time Monitoring (WebSocket)
User intent Command
Real time Smart Money buy/sell signals tracker ws smy duration 15
Real time KOL activity on a chain tracker ws kol c <chainId duration 15
Chain level wallet activity (multi chain) tracker ws wallet BSC,SOL duration 15
Monitor specific address trades tracker ws address <addr c <chainId duration 15
Batch address monitoring (file) tracker ws address list <file c <chainId duration 15
Monitor my followings' activity tracker ws following c <chainId duration 15
tracker ws subscribes to WSP WebSocket push events. It streams real time trade data (buys, sells, price changes) for the selected scope. In json mode, only push messages are written to stdout (no meta info), enabling pipeline processing with jq .
duration is required unless the user explicitly asks for an unlimited stream. Extract the duration from the user's instruction when available (e.g. "monitor for 60 seconds" → duration 60 ). If no duration is specified, default to duration 15 .
following tip : When the followed address list is large, the CLI may fall back to a broader chain level stream. If the user only wants events for their followed addresses, filter push messages by address against the follow list ( tracker follow c <chainId json ).
Limitations
Token price change : token/query may not relia