
Trading Signal
- 7.8k installs
- 942 repo stars
- Updated July 23, 2026
- binance/binance-skills-hub
How do you fetch Binance Web3 smart-money buy and sell signals on BSC or Solana with trigger price, max gain, and exit rate?
About
This skill retrieves discrete on-chain smart-money trading signals from tracked professional wallets on BSC and Solana. Each result is a buy or sell event with trigger price, current price, max gain since trigger, exit rate, and token tags such as Pumpfun or DEX Paid. Call the bundled CLI with chainId 56 for BSC or CT_501 for Solana, paginating up to 100 results per page. Summaries should map status values active, timeout, and completed into plain language, prefer active signals for actionable opportunities, and treat higher smartMoneyCount as stronger reliability while high exitRate suggests the trade may have passed. Logo URLs need the https://bin.bnbstatic.com prefix. The skill fits copy-trade research, whale activity alerts, and alpha signal scans over recent windows without building a custom indexer.
- Returns per-trade smart-money buy or sell events with trigger and current price
- Supports BSC chainId 56 and Solana chainId CT_501 via bundled CLI
- pageSize caps at 100 and status enum maps to active, timeout, or completed
- Higher smartMoneyCount implies stronger signal reliability across wallets
- High exitRate percentage warns that smart money may have already exited
Trading Signal by the numbers
- 7,817 all-time installs (skills.sh)
- +141 installs in the week ending Jul 28, 2026 (Skillselion tracking)
- Ranked #9 of 1,136 Finance & Trading skills by installs in the Skillselion catalog
- Security screen: LOW risk (skills.sh audit)
- Data as of Jul 28, 2026 (Skillselion catalog sync)
npx skills add https://github.com/binance/binance-skills-hub --skill trading-signalAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 7.8k |
|---|---|
| repo stars | ★ 942 |
| Security audit | 3 / 3 scanners passed |
| Last updated | July 23, 2026 |
| Repository | binance/binance-skills-hub ↗ |
What it does
Retrieve on-chain smart-money buy and sell signals on BSC and Solana with trigger price, max gain, and exit rate analysis.
Who is it for?
On-chain alpha researchers, copy-trade analysts, and agents answering whale buy questions or hourly signal scans on BSC and Solana.
Skip if: Centralized exchange spot order books, non-EVM chains outside the supported list, or long-form portfolio management without signal context.
When should I use this skill?
User asks about smart money buys, whale activity, copy-trade signals, trigger price versus current price, or max gain on recent on-chain trades.
What you get
The agent returns paginated smart-money signals with direction, status, reliability indicators, and correctly prefixed icon URLs ready for user-facing summaries.
- Smart Money signal lists
- Price and exit-rate comparison metrics
- Subscribed on-chain alert feeds
By the numbers
- Binance Web3 team skill version 1.1
Files
Trading Signal Skill
Overview
This skill retrieves on-chain Smart Money trading signals to help users track professional investors:
Get smart money buy/sell signals Compare signal trigger price with current price Analyze max gain and exit rate of signals Get token tags (e.g., Pumpfun, DEX Paid)
When to Use This Skill
| User intent | Command |
|---|---|
| Get on-chain smart-money buy/sell signals with gain + exit-rate data | smart-money |
Supported Chains
| Chain | chainId |
|---|---|
| BSC | 56 |
| Solana | CT_501 |
How to Call APIs
node <skill-dir>/scripts/cli.mjs smart-money '{"chainId":"CT_501","page":1,"pageSize":50}'Commands
| Command | Purpose | Required args | Example |
|---|---|---|---|
smart-money | Smart-money buy/sell signals with trigger price, max gain, exit rate | chainId | node <skill-dir>/scripts/cli.mjs smart-money '{"chainId":"56","page":1,"pageSize":50}' |
Optional args: page (default 1), pageSize (max 100), smartSignalType (filter; empty string = all).
Rules
- `pageSize` cap is 100 — larger values are silently clamped upstream.
- `status` enum (map to user-friendly language when summarizing):
active— signal still validtimeout— exceeded observation window (may still be informative, but stale)completed— reached target / stop loss
Prefer active signals when surfacing actionable opportunities.
- Quality indicators: higher
smartMoneyCount(more distinct smart-money addresses) implies higher signal reliability; highexitRate(%) suggests smart money has already exited, so the opportunity may have passed. - `direction` is
buyorsell— always include this when summarizing a signal. - Icon URL prefix:
logoUrlis a relative path; prependhttps://bin.bnbstatic.com.chainLogoUrlis already a full URL. Timestamps are ms;maxGainis a % string — convert before arithmetic.
Full CLI Reference
See `references/cli.md` for per-subcommand invocations, parameter tables, signal / tag / performance field tables, and real response samples.
trading-signal — CLI Reference
Complete reference for every command in scripts/cli.mjs.
Invocation pattern: node <skill-dir>/scripts/cli.mjs <command> '<json_params>' Exit codes: 0 success · 1 usage/upstream error · 3 network failure
---
smart-money — On-chain Smart Money trading signals
⚠️ Only"56"(BSC) and"CT_501"(Solana) are supported.pageSizemax is100. Signals withstatus: "timeout"are stale — prefer"valid"/"active"signals.
node <skill-dir>/scripts/cli.mjs smart-money '{"chainId":"CT_501","page":1,"pageSize":20}'Parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
chainId | string | yes | — | "56" (BSC) · "CT_501" (Solana) |
page | number | no | 1 | Page number (1-indexed) |
pageSize | number | no | — | Items per page, max 100 |
smartSignalType | string | no | — | Filter by signal type (e.g. "SMART_MONEY"); omit for all |
Return fields (under .data[])
Token identity
| Field | Type | Description |
|---|---|---|
signalId | number | Unique signal ID |
ticker | string | Token symbol |
chainId | string | Chain identifier |
contractAddress | string | Token contract address |
logoUrl | string | Logo path — prefix with https://bin.bnbstatic.com |
chainLogoUrl | string | Full URL of the chain icon |
tokenDecimals | number | Token decimals |
Tags & flags
| Field | Type | Description |
|---|---|---|
isAlpha | boolean | Marked as Alpha token |
launchPlatform | string | Launch platform (e.g. "Pumpfun", "Moonshot") |
tokenTag | object | Categorized tags. Known categories: "Social Events", "Launch Platform", "Sensitive Events", "Wash Trading Behavior" |
Signal data
| Field | Type | Description |
|---|---|---|
smartSignalType | string | e.g. "SMART_MONEY" |
direction | string | "buy" or "sell" |
smartMoneyCount | number | Smart money addresses triggering the signal (higher = stronger) |
signalCount | number | Historical signal count for this token |
signalTriggerTime | number | Signal trigger timestamp (ms) |
timeFrame | number | Observation window (ms) |
Price & performance
| Field | Type | Description |
|---|---|---|
alertPrice, alertMarketCap | string | Price / market cap at trigger (USD) |
currentPrice, currentMarketCap | string | Latest price / market cap (USD) |
highestPrice, highestPriceTime | string, number | Peak after signal + timestamp (ms) |
totalTokenValue | string | Aggregate trade value at signal (USD) |
maxGain | string | Max % gain since trigger — decimal fraction (e.g. "0.25" = 25%); multiply by 100 when displaying as a percentage |
exitRate | number | % of smart money already exited (high = stale) |
status | string | Signal status. Values: active (monitoring), valid (fresh/open), timeout (expired), completed (closed). |
Sample `tokenTag` shape (categorized; each category holds [{tagName}]):
"tokenTag": {
"Social Events": [{"tagName": "DEX Paid"}],
"Launch Platform": [{"tagName": "Pumpfun"}],
"Sensitive Events": [{"tagName": "Smart Money Add Holdings"}],
"Wash Trading Behavior": [{"tagName": "Insider Wash Trading"}]
}Signal quality: smartMoneyCount ≥ 5 = stronger conviction · exitRate ≥ 70 = already exiting, treat with caution · status:"timeout" = no longer actionable.
---
Errors
Exit codes: 0 ok · 1 upstream/usage (stderr: reason; stdout: body with business code) · 3 network. Business code: 000000 ok · 100004 rate-limited · 100002 bad param (check chainId/pageSize) · 000400 unsupported chain.
#!/usr/bin/env node
// trading-signal CLI — self-contained, zero-dep, Node >= 22
// Usage: node cli.mjs <command> '<json_params>'
//
// Commands:
// smart-money POST on-chain Smart Money trading signals (BSC + Solana)
// ---- inline HTTP helper (self-contained, zero dependency) ----
const TIMEOUT_MS = 10_000;
const UA = { 'Accept-Encoding': 'identity', 'User-Agent': 'binance-web3/2.0 (Skill)' };
const qs = (p) => Object.entries(p)
.filter(([, v]) => v != null)
.map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(v)}`)
.join('&');
async function call({ url, method = 'GET', body, headers = {} }) {
const ctrl = new AbortController();
const timer = setTimeout(() => ctrl.abort(), TIMEOUT_MS);
const opts = { method, headers: { ...UA, ...headers }, signal: ctrl.signal };
if (method === 'POST') { opts.headers['content-type'] = 'application/json'; opts.body = JSON.stringify(body || {}); }
let res;
try { res = await fetch(url, opts); }
catch { clearTimeout(timer); throw Object.assign(new Error('Network request failed'), { exitCode: 3 }); }
clearTimeout(timer);
const data = await res.json();
if (res.status >= 400) throw Object.assign(new Error(`HTTP ${res.status}`), { exitCode: 1, body: data });
return data;
}
// ---- per-command supported chains (client-side fail-fast) ----
const CHAINS = {
'smart-money': new Set(['56', 'CT_501']),
};
function validateChainId(cmd, chainId) {
const allowed = CHAINS[cmd];
if (!allowed) return;
const id = String(chainId ?? '');
if (!allowed.has(id)) {
const supported = [...allowed].map((c) => `"${c}"`).join(', ');
throw Object.assign(
new Error(`${cmd}: unsupported chainId "${chainId}". Supported: ${supported}`),
{ exitCode: 1 },
);
}
}
// ---- commands: (params) => { url, method?, body?, headers? } ----
const COMMANDS = {
'smart-money': (p) => {
validateChainId('smart-money', p.chainId);
return {
url: 'https://web3.binance.com/bapi/defi/v1/public/wallet-direct/buw/wallet/web/signal/smart-money/ai',
method: 'POST',
body: p,
};
},
};
// ---- exports (for unit testing; direct execution still works — see dispatch below) ----
export { COMMANDS, call, qs, UA, TIMEOUT_MS, CHAINS, validateChainId };
// ---- CLI dispatch (only runs when executed directly, not when imported) ----
if (import.meta.url === `file://${process.argv[1]}`) {
const [cmd, paramsStr] = process.argv.slice(2);
if (!cmd || cmd === '--help' || cmd === '-h') {
console.log("Usage: node cli.mjs <command> '<json_params>'\n\nCommands:");
for (const name of Object.keys(COMMANDS)) console.log(` ${name}`);
process.exit(0);
}
const builder = COMMANDS[cmd];
if (!builder) { console.error(`Unknown command: ${cmd}\nRun with --help to see available commands.`); process.exit(1); }
let params = {};
if (paramsStr) {
try { params = JSON.parse(paramsStr); }
catch { console.error('Invalid JSON params'); process.exit(1); }
}
try {
const result = await call(builder(params));
console.log(JSON.stringify(result, null, 2));
} catch (err) {
console.error(err.message);
if (err.body) console.log(JSON.stringify(err.body, null, 2));
process.exit(err.exitCode || 1);
}
}
Related skills
How it compares
Use trading-signal for on-chain smart-money alerts; use market-data skills like CoinGecko when broad exchange pricing and trending discovery matter more.
FAQ
What data does trading-signal return for each alert?
trading-signal returns Smart Money buy or sell signals with trigger price, current price, max gain, and exit rate. The Binance Web3 skill version 1.1 helps compare signal quality before using alerts as investment references.
Who maintains the trading-signal skill?
trading-signal is authored by the binance-web3-team as version 1.1 in the Binance skills hub. The skill monitors on-chain professional wallet activity to surface smart-money trading signals for research workflows.
Is Trading Signal safe to install?
skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.