skillpp 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/COMPATIBILITY.md +58 -0
- package/LICENSE +21 -0
- package/README.md +307 -0
- package/README.zh-CN.md +307 -0
- package/SKILL.md +490 -0
- package/adapters/binance-ai.md +22 -0
- package/adapters/claude.md +21 -0
- package/adapters/gemini.md +26 -0
- package/adapters/gpt.md +28 -0
- package/adapters/kimi.md +26 -0
- package/adapters/mimo.md +22 -0
- package/adapters/openclaw.md +29 -0
- package/assets/skillpp-banner.png +0 -0
- package/package.json +59 -0
- package/pipelines.md +310 -0
- package/prompts/newbie-mode.md +48 -0
- package/prompts/router-prompt.md +32 -0
- package/prompts/universal-system-prompt.md +41 -0
- package/registry.md +209 -0
- package/rules.md +323 -0
- package/schemas/audit.schema.json +67 -0
- package/schemas/checkpoint.schema.json +86 -0
- package/schemas/handoff.schema.json +82 -0
- package/schemas/token.schema.json +36 -0
- package/scripts/compatibility-check.mjs +130 -0
- package/scripts/selftest.mjs +384 -0
- package/scripts/skillpp.mjs +448 -0
- package/scripts/validate-skillpp.mjs +140 -0
- package/skillpp.manifest.json +714 -0
- package/skills/audit-plus/SKILL.md +612 -0
- package/skills/binance/binance/CHANGELOG.md +112 -0
- package/skills/binance/binance/LICENSE.md +9 -0
- package/skills/binance/binance/SKILL.md +69 -0
- package/skills/binance/binance/references/algo.md +21 -0
- package/skills/binance/binance/references/alpha.md +9 -0
- package/skills/binance/binance/references/auth.md +32 -0
- package/skills/binance/binance/references/c2c.md +5 -0
- package/skills/binance/binance/references/convert.md +19 -0
- package/skills/binance/binance/references/copy-trading.md +6 -0
- package/skills/binance/binance/references/crypto-loan.md +27 -0
- package/skills/binance/binance/references/derivatives-options-streams.md +25 -0
- package/skills/binance/binance/references/derivatives-options.md +85 -0
- package/skills/binance/binance/references/derivatives-portfolio-margin-pro-streams.md +5 -0
- package/skills/binance/binance/references/derivatives-portfolio-margin-pro.md +34 -0
- package/skills/binance/binance/references/derivatives-portfolio-margin-streams.md +5 -0
- package/skills/binance/binance/references/derivatives-portfolio-margin.md +146 -0
- package/skills/binance/binance/references/dual-investment.md +15 -0
- package/skills/binance/binance/references/fiat.md +9 -0
- package/skills/binance/binance/references/futures-coin-streams.md +29 -0
- package/skills/binance/binance/references/futures-coin.md +109 -0
- package/skills/binance/binance/references/futures-usds-streams.md +35 -0
- package/skills/binance/binance/references/futures-usds.md +144 -0
- package/skills/binance/binance/references/gift-card.md +10 -0
- package/skills/binance/binance/references/margin-trading-streams.md +6 -0
- package/skills/binance/binance/references/margin-trading.md +101 -0
- package/skills/binance/binance/references/mining.md +17 -0
- package/skills/binance/binance/references/pay.md +5 -0
- package/skills/binance/binance/references/rebate.md +5 -0
- package/skills/binance/binance/references/simple-earn.md +56 -0
- package/skills/binance/binance/references/spot-streams.md +25 -0
- package/skills/binance/binance/references/spot.md +114 -0
- package/skills/binance/binance/references/staking.md +59 -0
- package/skills/binance/binance/references/sub-account.md +67 -0
- package/skills/binance/binance/references/vip-loan.md +27 -0
- package/skills/binance/binance/references/wallet.md +75 -0
- package/skills/binance/fiat/CHANGELOG.md +11 -0
- package/skills/binance/fiat/LICENSE.md +9 -0
- package/skills/binance/fiat/SKILL.md +169 -0
- package/skills/binance/fiat/references/authentication.md +126 -0
- package/skills/binance/fiat/references/sapi-endpoints.md +217 -0
- package/skills/binance/onchain-pay/.local.md.example +10 -0
- package/skills/binance/onchain-pay/CHANGELOG.md +20 -0
- package/skills/binance/onchain-pay/LICENSE.md +9 -0
- package/skills/binance/onchain-pay/SKILL.md +466 -0
- package/skills/binance/onchain-pay/references/authentication.md +92 -0
- package/skills/binance/onchain-pay/scripts/sign_and_call.sh +52 -0
- package/skills/binance/p2p/CHANGELOG.md +33 -0
- package/skills/binance/p2p/LICENSE.md +9 -0
- package/skills/binance/p2p/SKILL.md +1082 -0
- package/skills/binance/p2p/references/agent-sapi-api.md +795 -0
- package/skills/binance/p2p/references/authentication.md +100 -0
- package/skills/binance/payment/SKILL.md +824 -0
- package/skills/binance/payment/common.py +560 -0
- package/skills/binance/payment/payment_skill.py +86 -0
- package/skills/binance/payment/receive.py +109 -0
- package/skills/binance/payment/references/setup-guide.md +77 -0
- package/skills/binance/payment/requirements.txt +4 -0
- package/skills/binance/payment/send.py +952 -0
- package/skills/binance/payment/send_extension/__init__.py +43 -0
- package/skills/binance/payment/send_extension/base.py +48 -0
- package/skills/binance/payment/send_extension/c2c.py +193 -0
- package/skills/binance/payment/send_extension/pix.py +316 -0
- package/skills/binance/square-post/README.md +62 -0
- package/skills/binance/square-post/SKILL.md +171 -0
- package/skills/binance/square-post/scripts/lib.mjs +175 -0
- package/skills/binance/square-post/scripts/post-image.mjs +80 -0
- package/skills/binance/square-post/scripts/post-text.mjs +41 -0
- package/skills/binance/square-post/scripts/post-video.mjs +110 -0
- package/skills/binance/square-post/scripts/save-key.mjs +34 -0
- package/skills/binance-web3/binance-agentic-wallet/SKILL.md +150 -0
- package/skills/binance-web3/binance-agentic-wallet/references/authentication.md +136 -0
- package/skills/binance-web3/binance-agentic-wallet/references/limit-order.md +204 -0
- package/skills/binance-web3/binance-agentic-wallet/references/market-order.md +179 -0
- package/skills/binance-web3/binance-agentic-wallet/references/prediction.md +489 -0
- package/skills/binance-web3/binance-agentic-wallet/references/preflight.md +66 -0
- package/skills/binance-web3/binance-agentic-wallet/references/security.md +47 -0
- package/skills/binance-web3/binance-agentic-wallet/references/send.md +53 -0
- package/skills/binance-web3/binance-agentic-wallet/references/wallet-setting.md +86 -0
- package/skills/binance-web3/binance-agentic-wallet/references/wallet-view.md +312 -0
- package/skills/binance-web3/binance-agentic-wallet/references/x402-payment.md +259 -0
- package/skills/binance-web3/binance-tokenized-securities-info/SKILL.md +613 -0
- package/skills/binance-web3/crypto-market-rank/SKILL.md +91 -0
- package/skills/binance-web3/crypto-market-rank/references/cli.md +219 -0
- package/skills/binance-web3/crypto-market-rank/scripts/cli.mjs +149 -0
- package/skills/binance-web3/meme-rush/SKILL.md +72 -0
- package/skills/binance-web3/meme-rush/references/cli.md +158 -0
- package/skills/binance-web3/meme-rush/scripts/cli.mjs +101 -0
- package/skills/binance-web3/query-address-info/SKILL.md +61 -0
- package/skills/binance-web3/query-address-info/references/cli.md +56 -0
- package/skills/binance-web3/query-address-info/scripts/cli.mjs +132 -0
- package/skills/binance-web3/query-token-audit/SKILL.md +162 -0
- package/skills/binance-web3/query-token-info/SKILL.md +83 -0
- package/skills/binance-web3/query-token-info/references/cli.md +135 -0
- package/skills/binance-web3/query-token-info/scripts/cli.mjs +112 -0
- package/skills/binance-web3/trading-signal/SKILL.md +66 -0
- package/skills/binance-web3/trading-signal/references/cli.md +90 -0
- package/skills/binance-web3/trading-signal/scripts/cli.mjs +92 -0
- package/skills/four-meme/four-guard/API-Contract-TaxToken.md +277 -0
- package/skills/four-meme/four-guard/API-CreateToken.02-02-2026.md +285 -0
- package/skills/four-meme/four-guard/API-Documents.03-03-2026.md +789 -0
- package/skills/four-meme/four-guard/AgentIdentifier.abi +585 -0
- package/skills/four-meme/four-guard/README.md +21 -0
- package/skills/four-meme/four-guard/SKILL.md +31 -0
- package/skills/four-meme/four-guard/TaxToken.abi +969 -0
- package/skills/four-meme/four-guard/TokenIdentifierSample.js_ +81 -0
- package/skills/four-meme/four-guard/TokenIdentifierSample.sol +69 -0
- package/skills/four-meme/four-guard/TokenManager.lite.abi +836 -0
- package/skills/four-meme/four-guard/TokenManager2.lite.abi +2325 -0
- package/skills/four-meme/four-guard/TokenManagerHelper3.abi +999 -0
- package/skills/four-meme/four-guard/go.mod +36 -0
- package/skills/four-meme/four-guard/go.sum +127 -0
- package/skills/four-meme/four-guard/main.go +183 -0
- package/skills/four-meme/four-meme-ai/SKILL.md +31 -0
- package/skills/four-meme/four-meme-ai/references/agent-creator-and-wallets.md +87 -0
- package/skills/four-meme/four-meme-ai/references/api-create-token.md +55 -0
- package/skills/four-meme/four-meme-ai/references/contract-addresses.md +47 -0
- package/skills/four-meme/four-meme-ai/references/create-token-scripts.md +131 -0
- package/skills/four-meme/four-meme-ai/references/errors.md +29 -0
- package/skills/four-meme/four-meme-ai/references/event-listening.md +75 -0
- package/skills/four-meme/four-meme-ai/references/execute-trade.md +31 -0
- package/skills/four-meme/four-meme-ai/references/tax-token-query.md +38 -0
- package/skills/four-meme/four-meme-ai/references/token-query-api.md +44 -0
- package/skills/four-meme/four-meme-ai/references/token-tax-info.md +77 -0
- package/skills/four-meme/four-meme-ai/scripts/8004-balance.ts +52 -0
- package/skills/four-meme/four-meme-ai/scripts/8004-register.ts +108 -0
- package/skills/four-meme/four-meme-ai/scripts/create-token-api.ts +321 -0
- package/skills/four-meme/four-meme-ai/scripts/create-token-chain.ts +102 -0
- package/skills/four-meme/four-meme-ai/scripts/create-token-instant.ts +106 -0
- package/skills/four-meme/four-meme-ai/scripts/execute-buy.ts +198 -0
- package/skills/four-meme/four-meme-ai/scripts/execute-sell.ts +150 -0
- package/skills/four-meme/four-meme-ai/scripts/get-public-config.ts +25 -0
- package/skills/four-meme/four-meme-ai/scripts/get-recent-events.ts +76 -0
- package/skills/four-meme/four-meme-ai/scripts/get-tax-token-info.ts +69 -0
- package/skills/four-meme/four-meme-ai/scripts/get-token-info.ts +94 -0
- package/skills/four-meme/four-meme-ai/scripts/quote-buy.ts +85 -0
- package/skills/four-meme/four-meme-ai/scripts/quote-sell.ts +66 -0
- package/skills/four-meme/four-meme-ai/scripts/send-token.ts +98 -0
- package/skills/four-meme/four-meme-ai/scripts/token-get.ts +31 -0
- package/skills/four-meme/four-meme-ai/scripts/token-list.ts +134 -0
- package/skills/four-meme/four-meme-ai/scripts/token-rankings.ts +162 -0
- package/skills/four-meme/four-meme-ai/scripts/verify-events.ts +47 -0
- package/skills/four-meme/four-meme-integration/SKILL.md +374 -0
- package/skills/four-meme/four-meme-integration/references/agent-creator-and-wallets.md +87 -0
- package/skills/four-meme/four-meme-integration/references/api-create-token.md +55 -0
- package/skills/four-meme/four-meme-integration/references/contract-addresses.md +47 -0
- package/skills/four-meme/four-meme-integration/references/create-token-scripts.md +131 -0
- package/skills/four-meme/four-meme-integration/references/errors.md +29 -0
- package/skills/four-meme/four-meme-integration/references/event-listening.md +75 -0
- package/skills/four-meme/four-meme-integration/references/execute-trade.md +31 -0
- package/skills/four-meme/four-meme-integration/references/tax-token-query.md +38 -0
- package/skills/four-meme/four-meme-integration/references/token-query-api.md +44 -0
- package/skills/four-meme/four-meme-integration/references/token-tax-info.md +77 -0
- package/skills/four-meme/four-meme-integration/scripts/8004-balance.ts +52 -0
- package/skills/four-meme/four-meme-integration/scripts/8004-register.ts +108 -0
- package/skills/four-meme/four-meme-integration/scripts/create-token-api.ts +321 -0
- package/skills/four-meme/four-meme-integration/scripts/create-token-chain.ts +102 -0
- package/skills/four-meme/four-meme-integration/scripts/create-token-instant.ts +106 -0
- package/skills/four-meme/four-meme-integration/scripts/execute-buy.ts +198 -0
- package/skills/four-meme/four-meme-integration/scripts/execute-sell.ts +150 -0
- package/skills/four-meme/four-meme-integration/scripts/get-public-config.ts +25 -0
- package/skills/four-meme/four-meme-integration/scripts/get-recent-events.ts +76 -0
- package/skills/four-meme/four-meme-integration/scripts/get-tax-token-info.ts +69 -0
- package/skills/four-meme/four-meme-integration/scripts/get-token-info.ts +94 -0
- package/skills/four-meme/four-meme-integration/scripts/quote-buy.ts +85 -0
- package/skills/four-meme/four-meme-integration/scripts/quote-sell.ts +66 -0
- package/skills/four-meme/four-meme-integration/scripts/send-token.ts +98 -0
- package/skills/four-meme/four-meme-integration/scripts/token-get.ts +31 -0
- package/skills/four-meme/four-meme-integration/scripts/token-list.ts +134 -0
- package/skills/four-meme/four-meme-integration/scripts/token-rankings.ts +162 -0
- package/skills/four-meme/four-meme-integration/scripts/verify-events.ts +47 -0
- package/skills/skillpp/contract-profiler/SKILL.md +118 -0
- package/skills/skillpp/newbie-tutor/SKILL.md +85 -0
- package/skills/skillpp/opportunity-board/SKILL.md +87 -0
- package/skills/skillpp/risk-fusion/SKILL.md +146 -0
- package/skills/skillpp/scam-pattern-lab/SKILL.md +115 -0
- package/skills/skillpp/wallet-doctor/SKILL.md +119 -0
- package/skills/skillpp/watchtower/SKILL.md +72 -0
- package/tests/compatibility/v0.1.0.json +117 -0
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: crypto-market-rank
|
|
3
|
+
description: |
|
|
4
|
+
Crypto market leaderboards — ranked aggregate feeds across the whole market:
|
|
5
|
+
social-hype/sentiment rank, trending / top-search / Binance Alpha / tokenized-stocks rank,
|
|
6
|
+
smart-money net-inflow rank (which tokens received the most inflow), top meme tokens by breakout score on Pulse launchpad,
|
|
7
|
+
top trader PnL leaderboard (ALL / KOL).
|
|
8
|
+
Use whenever the user wants a ranked list of tokens or addresses by some metric — phrases like
|
|
9
|
+
"trending tokens", "top N by hype", "leaderboard", "rank by X", "biggest inflows", "top traders this week".
|
|
10
|
+
metadata:
|
|
11
|
+
author: binance-web3-team
|
|
12
|
+
version: "3.0"
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Crypto Market Rank Skill
|
|
16
|
+
## Overview
|
|
17
|
+
|
|
18
|
+
Five leaderboard / rank endpoints fronted by one CLI. The agent issues a subcommand with a JSON blob; the CLI owns URL paths, method selection , query-string building, and upstream error mapping.
|
|
19
|
+
|
|
20
|
+
## When to Use This Skill
|
|
21
|
+
|
|
22
|
+
| User intent | Command |
|
|
23
|
+
|-------------|---------|
|
|
24
|
+
| Social Hype Leaderboard, Tokens with highest social buzz + sentiment summary | `social-hype` |
|
|
25
|
+
| Unified Token Rank, Trending / Top Search / Alpha / Stock token lists (filtered) | `token-rank` |
|
|
26
|
+
| Smart Money Inflow Rank, Tokens currently receiving the most smart-money net inflow | `smart-money-inflow` |
|
|
27
|
+
| Meme Token Rank,Top meme tokens from Pulse launchpad (breakout score) | `meme-rank` |
|
|
28
|
+
| Address Pnl Rank, Top trader PnL leaderboard (ALL / KOL) | `address-pnl-rank` |
|
|
29
|
+
|
|
30
|
+
## Supported Chains
|
|
31
|
+
|
|
32
|
+
| Chain | chainId | Supported on |
|
|
33
|
+
|-------|---------|--------------|
|
|
34
|
+
| BSC | `56` | `social-hype`, `token-rank`, `smart-money-inflow`, `meme-rank`, `address-pnl-rank` |
|
|
35
|
+
| Solana | `CT_501` | `social-hype`, `token-rank`, `smart-money-inflow`, `address-pnl-rank` |
|
|
36
|
+
| Base | `8453` | `social-hype`, `token-rank`, `smart-money-inflow`, `address-pnl-rank` |
|
|
37
|
+
| Ethereum | `1` | `token-rank`, `address-pnl-rank` |
|
|
38
|
+
|
|
39
|
+
> `meme-rank` only supports BSC (`56`). The CLI rejects unsupported chainIds with an error before calling the API.
|
|
40
|
+
|
|
41
|
+
## How to Call APIs
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
node <skill-dir>/scripts/cli.mjs token-rank \
|
|
45
|
+
'{"rankType":10,"chainId":"56","period":50,"sortBy":70,"orderAsc":false,"page":1,"size":20}'
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Commands
|
|
49
|
+
|
|
50
|
+
| Command | Purpose | Required args | Example |
|
|
51
|
+
|---------|---------|---------------|---------|
|
|
52
|
+
| `social-hype` | Social buzz leaderboard with sentiment + summaries | `chainId`, `targetLanguage`, `timeRange` | `node <skill-dir>/scripts/cli.mjs social-hype '{"chainId":"56","targetLanguage":"en","timeRange":1}'` |
|
|
53
|
+
| `token-rank` | Unified rank (Trending / TopSearch / Alpha / Stock) with filters | `rankType`, `chainId` | `node <skill-dir>/scripts/cli.mjs token-rank '{"rankType":10,"chainId":"56","page":1,"size":20}'` |
|
|
54
|
+
| `smart-money-inflow` | Token rank by smart money net inflow | `chainId` (CLI defaults `tagType` to `2`) | `node <skill-dir>/scripts/cli.mjs smart-money-inflow '{"chainId":"56","period":"24h"}'` |
|
|
55
|
+
| `meme-rank` | Top 100 Pulse launchpad meme tokens scored for breakout | `chainId` | `node <skill-dir>/scripts/cli.mjs meme-rank '{"chainId":"56"}'` |
|
|
56
|
+
| `address-pnl-rank` | Top trader PnL leaderboard | `chainId`, `period`, `tag` | `node <skill-dir>/scripts/cli.mjs address-pnl-rank '{"chainId":"CT_501","period":"30d","tag":"ALL","pageNo":1,"pageSize":25}'` |
|
|
57
|
+
|
|
58
|
+
## Use Flow
|
|
59
|
+
|
|
60
|
+
> **Before calling any API, you MUST read its reference file for the full command, parameters, example, and response fields.**
|
|
61
|
+
|
|
62
|
+
1. **Select command** — match user intent to the "When to use" column above
|
|
63
|
+
- For token-rank, also decide `rankType`: `10`=Trending, `11`=TopSearch, `20`=Alpha, `40`=Stock, see rules below
|
|
64
|
+
2. **Set chain** — pick `chainId` from Supported Chains; omit for all chains (token-rank only)
|
|
65
|
+
3. **Set time window** (if applicable)
|
|
66
|
+
- social-hype: `timeRange=1` (24h)
|
|
67
|
+
- token-rank `period`: `10`=1m, `20`=5m, `30`=1h, `40`=4h, `50`=24h (default `50`)
|
|
68
|
+
- smart-money-inflow `period`: `5m` / `1h` / `4h` / `24h` (default `24h`)
|
|
69
|
+
- address-pnl-rank `period`: `7d` / `30d` / `90d` (default `30d`)
|
|
70
|
+
4. **Set filters** — if user mentions specific conditions (market cap, volume, holders, PnL, win rate, etc.), read the reference for filter params
|
|
71
|
+
5. **Read reference** — open the corresponding reference file for command, full params, example, and response fields
|
|
72
|
+
6. **Call cli** — run the cli.mjs in scripts folder
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
## Rules
|
|
76
|
+
|
|
77
|
+
- **`rankType` enum for `token-rank`**: `10`=Trending, `11`=TopSearch, `20`=Alpha, `40`=Stock.
|
|
78
|
+
- **Trending (`10`) is the default.** Use it for any generic "hot / trending / popular / 热门 / 趋势 / 火" request — this is the board users mean 99% of the time.
|
|
79
|
+
- **TopSearch (`11`) requires an explicit signal.** Only pick it when the user says "热搜", "top search", "most searched", "搜索榜", or otherwise makes clear they want the search-count-driven list (not price/volume-driven). Search-count sort (`sortBy: 2`) only makes sense with TopSearch.
|
|
80
|
+
- When ambiguous, go Trending. Do not silently switch to TopSearch.
|
|
81
|
+
- **`tagType` default for `smart-money-inflow`**: the CLI auto-fills `tagType: 2` (upstream requires it and `2` is the only supported value today). Callers do not need to pass it; if passed, the caller's value wins.
|
|
82
|
+
- **`period` values differ by command**: `social-hype.timeRange` is numeric (`1`=24h); `token-rank.period` is a code (`10`=1m, `20`=5m, `30`=1h, `40`=4h, `50`=24h); `smart-money-inflow.period` is a string (`5m`/`1h`/`4h`/`24h`); `address-pnl-rank.period` is a string (`7d`/`30d`/`90d`). See `references/cli.md` for details.
|
|
83
|
+
- **`token-rank` supports rich filters** (min/max pairs: `marketCap`, `volume`, `liquidity`, `holders`, `percentChange`, etc.). Pass them as flat top-level fields on the JSON body — the CLI forwards the body verbatim.
|
|
84
|
+
- **Icon / logo URL prefix**: most `icon` / `logo` / `metaInfo.logo` / `tokenIconUrl` fields are relative paths. Prepend `https://bin.bnbstatic.com` to render. `chainLogoUrl` is already a full URL.
|
|
85
|
+
- **Numeric fields arrive as strings** (`price`, `marketCap`, `percentChange*`, etc.) — convert before arithmetic.
|
|
86
|
+
- **`address-pnl-rank.pageSize` cap is 25** — larger values are silently clamped.
|
|
87
|
+
- **All timestamps are milliseconds.**
|
|
88
|
+
|
|
89
|
+
## Full CLI Reference
|
|
90
|
+
|
|
91
|
+
See [`references/cli.md`](references/cli.md) for per-subcommand invocations, parameter tables, return-field tables, sort-option and filter tables, and real response samples.
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
# crypto-market-rank — CLI Reference
|
|
2
|
+
|
|
3
|
+
Complete reference for every command in `scripts/cli.mjs`.
|
|
4
|
+
|
|
5
|
+
**Invocation pattern:** `node <skill-dir>/scripts/cli.mjs <command> '<json_params>'`
|
|
6
|
+
**Exit codes:** `0` success · `1` usage/upstream error · `3` network failure
|
|
7
|
+
|
|
8
|
+
**Supported chains:** BSC (`56`), Base (`8453`), Solana (`CT_501`). Per-command restrictions noted below.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## `social-hype` — Social buzz leaderboard
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
node <skill-dir>/scripts/cli.mjs social-hype '{"chainId":"56","targetLanguage":"en","timeRange":1}'
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
### Parameters
|
|
19
|
+
|
|
20
|
+
| Param | Type | Required | Description |
|
|
21
|
+
|---|---|---|---|
|
|
22
|
+
| `chainId` | string | **yes** | Chain identifier |
|
|
23
|
+
| `targetLanguage` | string | **yes** | Translation target, e.g. `"en"`, `"zh"` |
|
|
24
|
+
| `timeRange` | number | **yes** | Time range, `1` = 24h |
|
|
25
|
+
| `sentiment` | string | no | Filter: `All` / `Positive` / `Negative` / `Neutral` |
|
|
26
|
+
| `socialLanguage` | string | no | Content language, `"ALL"` for all |
|
|
27
|
+
|
|
28
|
+
### Return fields (under `.data.leaderBoardList[]`)
|
|
29
|
+
|
|
30
|
+
| Field Path | Type | Description |
|
|
31
|
+
|---|---|---|
|
|
32
|
+
| `metaInfo.symbol` / `metaInfo.logo` | string | Token symbol and icon path (prefix `https://bin.bnbstatic.com`) |
|
|
33
|
+
| `metaInfo.chainId` / `metaInfo.contractAddress` | string | Chain + contract |
|
|
34
|
+
| `metaInfo.tokenAge` | number | Creation timestamp (ms) |
|
|
35
|
+
| `marketInfo.marketCap` / `marketInfo.priceChange` | number | Market cap (USD), 24h % change |
|
|
36
|
+
| `socialHypeInfo.socialHype` | number | Total social hype index |
|
|
37
|
+
| `socialHypeInfo.sentiment` | string | `Positive` / `Negative` / `Neutral` |
|
|
38
|
+
| `socialHypeInfo.socialSummaryBrief` / `...Detail` | string | Social summary (short / detailed) |
|
|
39
|
+
| `socialHypeInfo.socialSummaryBriefTranslated` / `...DetailTranslated` | string | Translated summaries |
|
|
40
|
+
|
|
41
|
+
**Nested shape:** each entry is `{metaInfo, marketInfo, socialHypeInfo}` — fields grouped by the three objects above.
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## `token-rank` — Unified token rank (POST)
|
|
46
|
+
|
|
47
|
+
> ⚠️ `rankType` determines the list: `10`=Trending · `11`=TopSearch · `20`=Alpha · `40`=Stock.
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
node <skill-dir>/scripts/cli.mjs token-rank '{"rankType":10,"chainId":"56","page":1,"size":20}'
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Parameters (all optional; body is a JSON object)
|
|
54
|
+
|
|
55
|
+
**Core:**
|
|
56
|
+
|
|
57
|
+
| Field | Type | Default | Description |
|
|
58
|
+
|---|---|---|---|
|
|
59
|
+
| `rankType` | integer | `10` | `10`=Trending, `11`=TopSearch, `20`=Alpha, `40`=Stock |
|
|
60
|
+
| `chainId` | string | — | `"1"`, `"56"`, `"8453"`, `"CT_501"` |
|
|
61
|
+
| `period` | integer | `50` | `10`=1m, `20`=5m, `30`=1h, `40`=4h, `50`=24h |
|
|
62
|
+
| `sortBy` | integer | `0` | See Sort Options below |
|
|
63
|
+
| `orderAsc` | boolean | `false` | Ascending if `true` |
|
|
64
|
+
| `page` / `size` | integer | `1` / `200` | Pagination (size max 200) |
|
|
65
|
+
|
|
66
|
+
**Min/Max filters (decimal unless noted):** `percentChange` · `marketCap` · `volume` · `liquidity` · `holders` (long) · `holdersTop10Percent` · `kycHolders` (long, Alpha only) · `count` (long) · `uniqueTrader` (long) · `launchTime` (long, ms).
|
|
67
|
+
|
|
68
|
+
**Advanced filters:** `keywords` / `excludes` (string[]) · `socials` (int[]: `0`=at_least_one, `1`=X, `2`=Telegram, `3`=Website) · `alphaTagFilter` (string[]) · `auditFilter` (int[]: `0`=not_renounced, `1`=freezable, `2`=mintable) · `tagFilter` (int[]: `0`=hide_alpha, `23`=dex_paid, `29`=alpha_points, …).
|
|
69
|
+
|
|
70
|
+
**Sort Options (`sortBy`):** `0`=Default · `1`=Web default · `2`=Search count · `10`=Launch time · `20`=Liquidity · `30`=Holders · `40`=Market cap · `50`=Price change · `60`=Tx count · `70`=Volume · `80`=KYC holders · `90`=Price · `100`=Unique traders.
|
|
71
|
+
|
|
72
|
+
### Return fields (under `.data.tokens[]`)
|
|
73
|
+
|
|
74
|
+
| Field | Type | Description |
|
|
75
|
+
|---|---|---|
|
|
76
|
+
| `chainId` / `contractAddress` / `symbol` / `icon` | string | Identity + logo (prefix `https://bin.bnbstatic.com`) |
|
|
77
|
+
| `price` / `marketCap` / `liquidity` / `holders` | string | All USD string-encoded decimals |
|
|
78
|
+
| `percentChange{1m,5m,1h,4h,24h}` | string | Price change per window (%) |
|
|
79
|
+
| `volume{window}` / `volume{window}{Buy,Sell}` | string | Volume + direction breakdown |
|
|
80
|
+
| `count{window}` / `count{window}{Buy,Sell}` | string | Transaction counts |
|
|
81
|
+
| `uniqueTrader{window}` | string | Unique traders per window |
|
|
82
|
+
| `alphaInfo` | object | Alpha metadata (`tagList`, `description`) |
|
|
83
|
+
| `auditInfo` | object | Audit info (`riskLevel`, `riskNum`, `cautionNum`) |
|
|
84
|
+
| `launchTime` / `decimals` | string / int | Launch timestamp (ms), token decimals |
|
|
85
|
+
| `kycHolders` / `holdersTop10Percent` | string | KYC holder count, top-10 % |
|
|
86
|
+
|
|
87
|
+
`.data.total` / `.data.page` / `.data.size` provide pagination context.
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## `smart-money-inflow` — Smart money net inflow rank (POST)
|
|
92
|
+
|
|
93
|
+
> ⚠️ **BSC (`56`) and Solana (`CT_501`) only.**
|
|
94
|
+
> ⚠️ `tagType` defaults to `2` (the CLI injects it automatically if omitted — always the correct value).
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
node <skill-dir>/scripts/cli.mjs smart-money-inflow '{"chainId":"56","period":"24h"}'
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Parameters
|
|
101
|
+
|
|
102
|
+
| Field | Type | Required | Description |
|
|
103
|
+
|---|---|---|---|
|
|
104
|
+
| `chainId` | string | **yes** | `"56"` (BSC), `"CT_501"` (Solana) |
|
|
105
|
+
| `period` | string | no | `"5m"` / `"1h"` / `"4h"` / `"24h"` |
|
|
106
|
+
| `tagType` | integer | auto | Injected as `2` if omitted — upstream only accepts `2` |
|
|
107
|
+
|
|
108
|
+
### Return fields (under `.data[]`)
|
|
109
|
+
|
|
110
|
+
| Field | Type | Description |
|
|
111
|
+
|---|---|---|
|
|
112
|
+
| `tokenName` / `tokenIconUrl` | string | Name + icon path (prefix `https://bin.bnbstatic.com`) |
|
|
113
|
+
| `ca` | string | Contract address |
|
|
114
|
+
| `price` / `marketCap` / `volume` / `liquidity` | string | USD, string-encoded |
|
|
115
|
+
| `priceChangeRate` | string | Price change in period (%) |
|
|
116
|
+
| `holders` / `kycHolders` / `holdersTop10Percent` | string | Holder stats |
|
|
117
|
+
| `count` / `countBuy` / `countSell` | string | Tx counts in period |
|
|
118
|
+
| `inflow` | number | **Smart money net inflow (USD)** — primary ranking metric |
|
|
119
|
+
| `traders` | integer | Number of smart-money addresses trading this token |
|
|
120
|
+
| `launchTime` | number | Launch timestamp (ms) |
|
|
121
|
+
| `tokenDecimals` | integer | Token decimals |
|
|
122
|
+
| `tokenRiskLevel` | integer | `-1`=unknown, `1`=low, `2`=medium, `3`=high |
|
|
123
|
+
| `link` | array | `[{label, link}]` social links |
|
|
124
|
+
| `tokenTag` | object | Tags by category |
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## `meme-rank` — Top meme tokens from Pulse launchpad
|
|
129
|
+
|
|
130
|
+
> ⚠️ **BSC (`56`) only.** Returns top 100 meme tokens launched via Pulse, scored and ranked by a breakout-potential algorithm.
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
node <skill-dir>/scripts/cli.mjs meme-rank '{"chainId":"56"}'
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Parameters
|
|
137
|
+
|
|
138
|
+
| Param | Type | Required | Description |
|
|
139
|
+
|---|---|---|---|
|
|
140
|
+
| `chainId` | string | **yes** | Must be `"56"` (BSC) |
|
|
141
|
+
|
|
142
|
+
### Return fields (under `.data.tokens[]`)
|
|
143
|
+
|
|
144
|
+
| Field | Type | Description |
|
|
145
|
+
|---|---|---|
|
|
146
|
+
| `rank` / `score` | integer / string | Rank position and algorithm score (higher = stronger breakout signal) |
|
|
147
|
+
| `chainId` / `contractAddress` / `symbol` | string | Identity |
|
|
148
|
+
| `metaInfo.icon` / `metaInfo.name` / `metaInfo.decimals` | — | Logo path, full name, decimals |
|
|
149
|
+
| `metaInfo.aiNarrativeFlag` | int | `1` = AI narrative summary available |
|
|
150
|
+
| `price` / `percentChange` / `percentChange7d` | string | Current price, current %, 7-day % |
|
|
151
|
+
| `marketCap` / `liquidity` / `volume` | string | USD |
|
|
152
|
+
| `volumeBnTotal` / `volumeBn7d` | string | Binance-user volume (total / 7d) |
|
|
153
|
+
| `holders` / `kycHolders` / `bnUniqueHolders` / `holdersTop10Percent` | string | Holder stats |
|
|
154
|
+
| `count` / `countBnTotal` / `countBn7d` | integer | Transaction counts |
|
|
155
|
+
| `uniqueTraderBn` / `uniqueTraderBn7d` | integer | Binance unique traders |
|
|
156
|
+
| `impression` | integer | View count |
|
|
157
|
+
| `createTime` / `migrateTime` | number | Creation + migration timestamps (ms) |
|
|
158
|
+
| `alphaStatus` | integer | Alpha listing status |
|
|
159
|
+
| `previewLink` | object | `{website[], x[], telegram[]}` |
|
|
160
|
+
| `tokenTag` | object | Tags by category |
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## `address-pnl-rank` — Top trader PnL leaderboard
|
|
165
|
+
|
|
166
|
+
> ⚠️ **Chain support:** `"56"` (BSC), `"CT_501"` (Solana).
|
|
167
|
+
> ⚠️ **`period` accepted values:** `"7d"` / `"30d"` / `"90d"`.
|
|
168
|
+
> ⚠️ `pageSize` max = `25`.
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
node <skill-dir>/scripts/cli.mjs address-pnl-rank '{"chainId":"CT_501","period":"30d","tag":"ALL","pageNo":1,"pageSize":25}'
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### Parameters
|
|
175
|
+
|
|
176
|
+
| Param | Type | Required | Description |
|
|
177
|
+
|---|---|---|---|
|
|
178
|
+
| `chainId` | string | **yes** | `"56"` or `"CT_501"` |
|
|
179
|
+
| `period` | string | **yes** | `"7d"` / `"30d"` / `"90d"` |
|
|
180
|
+
| `tag` | string | **yes** | `"ALL"` or `"KOL"` |
|
|
181
|
+
| `sortBy` | integer | no | Sort field |
|
|
182
|
+
| `orderBy` | integer | no | Order direction |
|
|
183
|
+
| `pageNo` | integer | no | Min 1 |
|
|
184
|
+
| `pageSize` | integer | no | Max 25 |
|
|
185
|
+
|
|
186
|
+
**Min/Max filters:** `PNL` (decimal) · `winRate` (decimal, e.g. `1` = 1%) · `tx` (long) · `volume` (decimal).
|
|
187
|
+
|
|
188
|
+
### Return fields (under `.data.data[]`)
|
|
189
|
+
|
|
190
|
+
| Field | Type | Description |
|
|
191
|
+
|---|---|---|
|
|
192
|
+
| `address` / `addressLogo` / `addressLabel` | string | Wallet, avatar, display name |
|
|
193
|
+
| `balance` | string | On-chain native coin balance (chain-native gas token) |
|
|
194
|
+
| `tags` / `genericAddressTagList` | array | Tag info (e.g. KOL; detailed version has `tagName`, `logoUrl`, `extraInfo`) |
|
|
195
|
+
| `realizedPnl` / `realizedPnlPercent` | string | Period PnL in USD and % |
|
|
196
|
+
| `dailyPNL` | array | `[{realizedPnl, dt}]` per-day breakdown |
|
|
197
|
+
| `winRate` | string | Win rate for the period |
|
|
198
|
+
| `totalVolume` / `buyVolume` / `sellVolume` / `avgBuyVolume` | string | Volume breakdown (USD) |
|
|
199
|
+
| `totalTxCnt` / `buyTxCnt` / `sellTxCnt` | integer | Transaction counts |
|
|
200
|
+
| `totalTradedTokens` | integer | Number of distinct tokens traded |
|
|
201
|
+
| `topEarningTokens` | array | `[{tokenAddress, tokenSymbol, tokenUrl, realizedPnl, profitRate}]` |
|
|
202
|
+
| `tokenDistribution` | object | `{gt500Cnt, between0And500Cnt, between0AndNegative50Cnt, ltNegative50Cnt}` |
|
|
203
|
+
| `lastActivity` | number | Last activity timestamp (ms) |
|
|
204
|
+
|
|
205
|
+
Pagination: `.data.current` / `.data.size` / `.data.pages`. `dailyPNL[]` entries are `{realizedPnl, dt}`. `topEarningTokens[]` entries are `{tokenAddress, tokenSymbol, tokenUrl, realizedPnl, profitRate}`.
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
## Errors
|
|
210
|
+
|
|
211
|
+
Exit codes: `0` ok · `1` upstream/usage (stderr: reason; stdout: body with business `code`) · `3` network.
|
|
212
|
+
Business `code`: `000000` ok · `100004` rate-limited · `100002` bad param · `000400` token not found / unsupported chain.
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## Notes
|
|
217
|
+
|
|
218
|
+
- Icon URL prefix: `https://bin.bnbstatic.com` + `icon`/`logo`/`tokenIconUrl`.
|
|
219
|
+
- Most price / volume / market-cap fields are string-encoded decimals — parse before arithmetic.
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { fileURLToPath } from "url";
|
|
3
|
+
// crypto-market-rank CLI - self-contained, zero-dep, Node >= 22
|
|
4
|
+
// Usage: node cli.mjs <command> '<json_params>'
|
|
5
|
+
//
|
|
6
|
+
// Commands:
|
|
7
|
+
// social-hype GET social buzz leaderboard (sentiment + summary)
|
|
8
|
+
// token-rank POST unified rank (Trending / TopSearch / Alpha / Stock)
|
|
9
|
+
// smart-money-inflow POST token rank by smart money net inflow
|
|
10
|
+
// meme-rank GET top meme tokens from Pulse launchpad (BSC only)
|
|
11
|
+
// address-pnl-rank GET top trader PnL leaderboard
|
|
12
|
+
//
|
|
13
|
+
|
|
14
|
+
// ---- inline HTTP helper (self-contained, zero dependency) ----
|
|
15
|
+
const TIMEOUT_MS = 10_000;
|
|
16
|
+
const UA = { 'Accept-Encoding': 'identity', 'User-Agent': 'binance-web3/3.0 (Skill)' };
|
|
17
|
+
|
|
18
|
+
const qs = (p) => Object.entries(p)
|
|
19
|
+
.filter(([, v]) => v != null)
|
|
20
|
+
.map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(v)}`)
|
|
21
|
+
.join('&');
|
|
22
|
+
|
|
23
|
+
async function call({ url, method = 'GET', body, headers = {} }) {
|
|
24
|
+
const ctrl = new AbortController();
|
|
25
|
+
const timer = setTimeout(() => ctrl.abort(), TIMEOUT_MS);
|
|
26
|
+
const opts = { method, headers: { ...UA, ...headers }, signal: ctrl.signal };
|
|
27
|
+
if (method === 'POST') { opts.headers['content-type'] = 'application/json'; opts.body = JSON.stringify(body || {}); }
|
|
28
|
+
let res;
|
|
29
|
+
try { res = await fetch(url, opts); }
|
|
30
|
+
catch { clearTimeout(timer); throw Object.assign(new Error('Network request failed'), { exitCode: 3 }); }
|
|
31
|
+
clearTimeout(timer);
|
|
32
|
+
const data = await res.json();
|
|
33
|
+
if (res.status >= 400) throw Object.assign(new Error(`HTTP ${res.status}`), { exitCode: 1, body: data });
|
|
34
|
+
return data;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// ---- per-command supported chains (client-side fail-fast) ----
|
|
38
|
+
const CHAINS = {
|
|
39
|
+
'social-hype': new Set(['56', '8453', 'CT_501']),
|
|
40
|
+
'token-rank': new Set(['56', '8453', 'CT_501', '1']),
|
|
41
|
+
'smart-money-inflow': new Set(['56', 'CT_501', '8453']),
|
|
42
|
+
'meme-rank': new Set(['56']),
|
|
43
|
+
'address-pnl-rank': new Set(['56', 'CT_501', '8453', '1']),
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
function validateChainId(cmd, chainId) {
|
|
47
|
+
const allowed = CHAINS[cmd];
|
|
48
|
+
if (!allowed) return;
|
|
49
|
+
const id = String(chainId ?? '');
|
|
50
|
+
if (!allowed.has(id)) {
|
|
51
|
+
const supported = [...allowed].map((c) => `"${c}"`).join(', ');
|
|
52
|
+
throw Object.assign(
|
|
53
|
+
new Error(`${cmd}: unsupported chainId "${chainId}". Supported: ${supported}`),
|
|
54
|
+
{ exitCode: 1 },
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// ---- commands: (params) => { url, method?, body?, headers? } ----
|
|
60
|
+
const COMMANDS = {
|
|
61
|
+
'social-hype': (p) => {
|
|
62
|
+
validateChainId('social-hype', p.chainId);
|
|
63
|
+
return {
|
|
64
|
+
url: `https://web3.binance.com/bapi/defi/v1/public/wallet-direct/buw/wallet/market/token/pulse/social/hype/rank/leaderboard/ai?${qs(p)}`,
|
|
65
|
+
};
|
|
66
|
+
},
|
|
67
|
+
'token-rank': (p) => {
|
|
68
|
+
validateChainId('token-rank', p.chainId);
|
|
69
|
+
const TRENDING_ALPHA_DEFAULTS = {
|
|
70
|
+
countMin: 10,
|
|
71
|
+
launchTimeMin: 15,
|
|
72
|
+
liquidityMin: 5000,
|
|
73
|
+
uniqueTraderMin: 10,
|
|
74
|
+
volumeMin: 10000,
|
|
75
|
+
};
|
|
76
|
+
const TRENDING_DEFAULTS = {
|
|
77
|
+
tagFilter: [1, 2, 3],
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
const rankType = p.rankType ?? 10;
|
|
81
|
+
let body = { ...p };
|
|
82
|
+
|
|
83
|
+
if (rankType === 10) {
|
|
84
|
+
// Trending: apply both shared + trending-only defaults (caller params take precedence)
|
|
85
|
+
body = { ...TRENDING_ALPHA_DEFAULTS, ...TRENDING_DEFAULTS, ...p };
|
|
86
|
+
} else if (rankType === 20) {
|
|
87
|
+
// Alpha: apply only shared defaults (caller params take precedence)
|
|
88
|
+
body = { ...TRENDING_ALPHA_DEFAULTS, ...p };
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
return {
|
|
92
|
+
url: 'https://web3.binance.com/bapi/defi/v1/public/wallet-direct/buw/wallet/market/token/pulse/unified/rank/list/ai',
|
|
93
|
+
method: 'POST',
|
|
94
|
+
body,
|
|
95
|
+
};
|
|
96
|
+
},
|
|
97
|
+
'smart-money-inflow': (p) => {
|
|
98
|
+
validateChainId('smart-money-inflow', p.chainId);
|
|
99
|
+
return {
|
|
100
|
+
url: 'https://web3.binance.com/bapi/defi/v1/public/wallet-direct/tracker/wallet/token/inflow/rank/query/ai',
|
|
101
|
+
method: 'POST',
|
|
102
|
+
body: { ...p, tagType: p.tagType ?? 2 },
|
|
103
|
+
};
|
|
104
|
+
},
|
|
105
|
+
'meme-rank': (p) => {
|
|
106
|
+
validateChainId('meme-rank', p.chainId);
|
|
107
|
+
return {
|
|
108
|
+
url: `https://web3.binance.com/bapi/defi/v1/public/wallet-direct/buw/wallet/market/token/pulse/exclusive/rank/list/ai?${qs(p)}`,
|
|
109
|
+
};
|
|
110
|
+
},
|
|
111
|
+
'address-pnl-rank': (p) => {
|
|
112
|
+
validateChainId('address-pnl-rank', p.chainId);
|
|
113
|
+
return {
|
|
114
|
+
url: `https://web3.binance.com/bapi/defi/v1/public/wallet-direct/market/leaderboard/query/ai?${qs(p)}`,
|
|
115
|
+
};
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
// ---- exports (for unit testing; direct execution still works - see dispatch below) ----
|
|
120
|
+
export { COMMANDS, call, qs, UA, TIMEOUT_MS, CHAINS, validateChainId };
|
|
121
|
+
|
|
122
|
+
// ---- CLI dispatch (only runs when executed directly, not when imported) ----
|
|
123
|
+
if (fileURLToPath(import.meta.url) === process.argv[1]) {
|
|
124
|
+
const [cmd, paramsStr] = process.argv.slice(2);
|
|
125
|
+
|
|
126
|
+
if (!cmd || cmd === '--help' || cmd === '-h') {
|
|
127
|
+
console.log("Usage: node cli.mjs <command> '<json_params>'\n\nCommands:");
|
|
128
|
+
for (const name of Object.keys(COMMANDS)) console.log(` ${name}`);
|
|
129
|
+
process.exit(0);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
const builder = COMMANDS[cmd];
|
|
133
|
+
if (!builder) { console.error(`Unknown command: ${cmd}\nRun with --help to see available commands.`); process.exit(1); }
|
|
134
|
+
|
|
135
|
+
let params = {};
|
|
136
|
+
if (paramsStr) {
|
|
137
|
+
try { params = JSON.parse(paramsStr); }
|
|
138
|
+
catch { console.error('Invalid JSON params'); process.exit(1); }
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
try {
|
|
142
|
+
const result = await call(builder(params));
|
|
143
|
+
console.log(JSON.stringify(result, null, 2));
|
|
144
|
+
} catch (err) {
|
|
145
|
+
console.error(err.message);
|
|
146
|
+
if (err.body) console.log(JSON.stringify(err.body, null, 2));
|
|
147
|
+
process.exit(err.exitCode || 1);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: meme-rush
|
|
3
|
+
description: |
|
|
4
|
+
Live launchpad feed + AI hot topics for meme tokens.
|
|
5
|
+
(1) meme-rush: real-time lifecycle feed on launchpads (Pump.fun, Four.meme) — brand-new launches,
|
|
6
|
+
currently-finalizing / bonding-curve tokens, and just-migrated-to-DEX tokens; filter by dev behavior, age, market cap.
|
|
7
|
+
(2) topic-rush: AI-detected hot market narratives with the associated tokens ranked by inflow.
|
|
8
|
+
Use for: "new pump.fun launches", "what just migrated", "currently bonding", "hot narratives", "what topic is pumping right now",
|
|
9
|
+
"live launchpad feed", "AI hot topics".
|
|
10
|
+
metadata:
|
|
11
|
+
author: binance-web3-team
|
|
12
|
+
version: "2.0"
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Meme Rush Skill
|
|
16
|
+
|
|
17
|
+
## Overview
|
|
18
|
+
|
|
19
|
+
Two rank feeds fronted by one CLI: `meme-rush` (launchpad lifecycle tracking) and `topic-rush` (AI hot-topic discovery with associated tokens). The CLI owns URL, method, JSON encoding, timeout, and upstream error mapping — the agent only picks the subcommand and fills the filter JSON.
|
|
20
|
+
|
|
21
|
+
## When to Use This Skill
|
|
22
|
+
|
|
23
|
+
| User intent | Command |
|
|
24
|
+
|-------------|---------|
|
|
25
|
+
| New / finalizing / migrated meme tokens on a launchpad | `meme-rush` |
|
|
26
|
+
| AI-generated market hot topics and their associated tokens | `topic-rush` |
|
|
27
|
+
|
|
28
|
+
## Supported Chains
|
|
29
|
+
|
|
30
|
+
| Chain | chainId | Supported on |
|
|
31
|
+
|-------|---------|--------------|
|
|
32
|
+
| BSC | `56` | `meme-rush`, `topic-rush` |
|
|
33
|
+
| Solana | `CT_501` | `meme-rush`, `topic-rush` |
|
|
34
|
+
| Base | `8453` | `meme-rush` |
|
|
35
|
+
|
|
36
|
+
## How to Call APIs
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
node <skill-dir>/scripts/cli.mjs meme-rush '{"chainId":"CT_501","rankType":10,"limit":20}'
|
|
40
|
+
node <skill-dir>/scripts/cli.mjs topic-rush '{"chainId":"CT_501","rankType":10,"sort":10,"asc":false}'
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Commands
|
|
44
|
+
|
|
45
|
+
| Command | Purpose | Required args | Example |
|
|
46
|
+
|---------|---------|---------------|---------|
|
|
47
|
+
| `meme-rush` | Launchpad token lifecycle ranking (new / finalizing / migrated) | `chainId`, `rankType` | `node <skill-dir>/scripts/cli.mjs meme-rush '{"chainId":"CT_501","rankType":10,"limit":20}'` |
|
|
48
|
+
| `topic-rush` | AI-generated hot topics with associated tokens | `chainId`, `rankType`, `sort` | `node <skill-dir>/scripts/cli.mjs topic-rush '{"chainId":"CT_501","rankType":10,"sort":10}'` |
|
|
49
|
+
|
|
50
|
+
Optional filters for `meme-rush` (all min/max pairs): `progress`, `tokenAge`, `holders`, `liquidity`, `volume`, `marketCap`, `count{,Buy,Sell}`, `holders{Top10,Dev,Sniper,Insider}Percent`, `bundlerHoldingPercent`, `newWalletHoldingPercent`, `bnHoldingPercent`, `{bn,kol,pro}Holders`, `devMigrateCount`, `globalFee`; plus `keywords`, `excludes`, `limit` (max 200), `protocol[]`, `devPosition`, `devBurnedToken`, `excludeDevWashTrading`, `excludeInsiderWashTrading`, `exclusive`, `paidOnDexScreener`, `pumpfunLiving`, `cmcBoost`, `pairAnchorAddress[]`, `tokenSocials.atLeastOne`, `tokenSocials.socials[]`. See `references/cli.md` for type and semantics of each field.
|
|
51
|
+
|
|
52
|
+
Optional filters for `topic-rush`: `asc` (boolean), `keywords`, `topicType`, `tokenSizeMin/Max`, `netInflowMin/Max`.
|
|
53
|
+
|
|
54
|
+
## Rules
|
|
55
|
+
|
|
56
|
+
- **`meme-rush` `rankType`** enum — stage of the token's launchpad lifecycle:
|
|
57
|
+
- `10` = **New** (freshly created, still on bonding curve)
|
|
58
|
+
- `20` = **Finalizing** (bonding curve nearly complete, about to migrate)
|
|
59
|
+
- `30` = **Migrated** (just migrated to DEX)
|
|
60
|
+
- **`topic-rush` `rankType`** enum — topic freshness:
|
|
61
|
+
- `10` = **Latest** (newest hot topics)
|
|
62
|
+
- `20` = **Rising** (rising topics, all-time-high inflow between $1k–$20k)
|
|
63
|
+
- **`topic-rush` `sort`** enum: `10` = create time, `20` = net inflow. **Default to `sort=10`** when the user does not specify a sort preference.
|
|
64
|
+
- **Only `chainId` and `rankType` are required** for `meme-rush`; all other parameters are optional filters. `topic-rush` additionally requires `sort`.
|
|
65
|
+
- **Percentage fields are pre-formatted** — `progress`, holder %, `devSellPercent`, `taxRate`, `priceChange`, `priceChange24h` are already strings like `"42.5"`, so **append `%` directly** when displaying; do NOT multiply by 100.
|
|
66
|
+
- **Icon URL prefix**: `icon` is a relative path returned by upstream; prepend `https://bin.bnbstatic.com` before rendering. `tokenList[].icon` in `topic-rush` responses follows the same rule.
|
|
67
|
+
- **`taxRate` visibility**: for `protocol=2001` (Four.meme) `taxRate` only appears on the **Migrated** list; for `protocol=2002` (Flap) it appears on all lists.
|
|
68
|
+
- **Protocol codes** (`1001`–`2002`) map to specific launchpads (Pump.fun, Moonit, Pump AMM, Raydium V4/CPMM/CLMM, BONK, Dynamic BC, Moonshot, Jup Studio, Bags, Believer, Meteora DAMM V2 / Pools, Orca, Four.meme, Flap). See `references/cli.md` for the full table.
|
|
69
|
+
|
|
70
|
+
## Full CLI Reference
|
|
71
|
+
|
|
72
|
+
See [`references/cli.md`](references/cli.md) for per-subcommand invocations, full parameter tables (all filter fields, holder-distribution filters, dev & launch filters), return-field tables (core, trade counts, holder distribution, dev & migration, tags & flags, social links, AI narrative, topic + tokenList), and real response samples.
|