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.
Files changed (208) hide show
  1. package/COMPATIBILITY.md +58 -0
  2. package/LICENSE +21 -0
  3. package/README.md +307 -0
  4. package/README.zh-CN.md +307 -0
  5. package/SKILL.md +490 -0
  6. package/adapters/binance-ai.md +22 -0
  7. package/adapters/claude.md +21 -0
  8. package/adapters/gemini.md +26 -0
  9. package/adapters/gpt.md +28 -0
  10. package/adapters/kimi.md +26 -0
  11. package/adapters/mimo.md +22 -0
  12. package/adapters/openclaw.md +29 -0
  13. package/assets/skillpp-banner.png +0 -0
  14. package/package.json +59 -0
  15. package/pipelines.md +310 -0
  16. package/prompts/newbie-mode.md +48 -0
  17. package/prompts/router-prompt.md +32 -0
  18. package/prompts/universal-system-prompt.md +41 -0
  19. package/registry.md +209 -0
  20. package/rules.md +323 -0
  21. package/schemas/audit.schema.json +67 -0
  22. package/schemas/checkpoint.schema.json +86 -0
  23. package/schemas/handoff.schema.json +82 -0
  24. package/schemas/token.schema.json +36 -0
  25. package/scripts/compatibility-check.mjs +130 -0
  26. package/scripts/selftest.mjs +384 -0
  27. package/scripts/skillpp.mjs +448 -0
  28. package/scripts/validate-skillpp.mjs +140 -0
  29. package/skillpp.manifest.json +714 -0
  30. package/skills/audit-plus/SKILL.md +612 -0
  31. package/skills/binance/binance/CHANGELOG.md +112 -0
  32. package/skills/binance/binance/LICENSE.md +9 -0
  33. package/skills/binance/binance/SKILL.md +69 -0
  34. package/skills/binance/binance/references/algo.md +21 -0
  35. package/skills/binance/binance/references/alpha.md +9 -0
  36. package/skills/binance/binance/references/auth.md +32 -0
  37. package/skills/binance/binance/references/c2c.md +5 -0
  38. package/skills/binance/binance/references/convert.md +19 -0
  39. package/skills/binance/binance/references/copy-trading.md +6 -0
  40. package/skills/binance/binance/references/crypto-loan.md +27 -0
  41. package/skills/binance/binance/references/derivatives-options-streams.md +25 -0
  42. package/skills/binance/binance/references/derivatives-options.md +85 -0
  43. package/skills/binance/binance/references/derivatives-portfolio-margin-pro-streams.md +5 -0
  44. package/skills/binance/binance/references/derivatives-portfolio-margin-pro.md +34 -0
  45. package/skills/binance/binance/references/derivatives-portfolio-margin-streams.md +5 -0
  46. package/skills/binance/binance/references/derivatives-portfolio-margin.md +146 -0
  47. package/skills/binance/binance/references/dual-investment.md +15 -0
  48. package/skills/binance/binance/references/fiat.md +9 -0
  49. package/skills/binance/binance/references/futures-coin-streams.md +29 -0
  50. package/skills/binance/binance/references/futures-coin.md +109 -0
  51. package/skills/binance/binance/references/futures-usds-streams.md +35 -0
  52. package/skills/binance/binance/references/futures-usds.md +144 -0
  53. package/skills/binance/binance/references/gift-card.md +10 -0
  54. package/skills/binance/binance/references/margin-trading-streams.md +6 -0
  55. package/skills/binance/binance/references/margin-trading.md +101 -0
  56. package/skills/binance/binance/references/mining.md +17 -0
  57. package/skills/binance/binance/references/pay.md +5 -0
  58. package/skills/binance/binance/references/rebate.md +5 -0
  59. package/skills/binance/binance/references/simple-earn.md +56 -0
  60. package/skills/binance/binance/references/spot-streams.md +25 -0
  61. package/skills/binance/binance/references/spot.md +114 -0
  62. package/skills/binance/binance/references/staking.md +59 -0
  63. package/skills/binance/binance/references/sub-account.md +67 -0
  64. package/skills/binance/binance/references/vip-loan.md +27 -0
  65. package/skills/binance/binance/references/wallet.md +75 -0
  66. package/skills/binance/fiat/CHANGELOG.md +11 -0
  67. package/skills/binance/fiat/LICENSE.md +9 -0
  68. package/skills/binance/fiat/SKILL.md +169 -0
  69. package/skills/binance/fiat/references/authentication.md +126 -0
  70. package/skills/binance/fiat/references/sapi-endpoints.md +217 -0
  71. package/skills/binance/onchain-pay/.local.md.example +10 -0
  72. package/skills/binance/onchain-pay/CHANGELOG.md +20 -0
  73. package/skills/binance/onchain-pay/LICENSE.md +9 -0
  74. package/skills/binance/onchain-pay/SKILL.md +466 -0
  75. package/skills/binance/onchain-pay/references/authentication.md +92 -0
  76. package/skills/binance/onchain-pay/scripts/sign_and_call.sh +52 -0
  77. package/skills/binance/p2p/CHANGELOG.md +33 -0
  78. package/skills/binance/p2p/LICENSE.md +9 -0
  79. package/skills/binance/p2p/SKILL.md +1082 -0
  80. package/skills/binance/p2p/references/agent-sapi-api.md +795 -0
  81. package/skills/binance/p2p/references/authentication.md +100 -0
  82. package/skills/binance/payment/SKILL.md +824 -0
  83. package/skills/binance/payment/common.py +560 -0
  84. package/skills/binance/payment/payment_skill.py +86 -0
  85. package/skills/binance/payment/receive.py +109 -0
  86. package/skills/binance/payment/references/setup-guide.md +77 -0
  87. package/skills/binance/payment/requirements.txt +4 -0
  88. package/skills/binance/payment/send.py +952 -0
  89. package/skills/binance/payment/send_extension/__init__.py +43 -0
  90. package/skills/binance/payment/send_extension/base.py +48 -0
  91. package/skills/binance/payment/send_extension/c2c.py +193 -0
  92. package/skills/binance/payment/send_extension/pix.py +316 -0
  93. package/skills/binance/square-post/README.md +62 -0
  94. package/skills/binance/square-post/SKILL.md +171 -0
  95. package/skills/binance/square-post/scripts/lib.mjs +175 -0
  96. package/skills/binance/square-post/scripts/post-image.mjs +80 -0
  97. package/skills/binance/square-post/scripts/post-text.mjs +41 -0
  98. package/skills/binance/square-post/scripts/post-video.mjs +110 -0
  99. package/skills/binance/square-post/scripts/save-key.mjs +34 -0
  100. package/skills/binance-web3/binance-agentic-wallet/SKILL.md +150 -0
  101. package/skills/binance-web3/binance-agentic-wallet/references/authentication.md +136 -0
  102. package/skills/binance-web3/binance-agentic-wallet/references/limit-order.md +204 -0
  103. package/skills/binance-web3/binance-agentic-wallet/references/market-order.md +179 -0
  104. package/skills/binance-web3/binance-agentic-wallet/references/prediction.md +489 -0
  105. package/skills/binance-web3/binance-agentic-wallet/references/preflight.md +66 -0
  106. package/skills/binance-web3/binance-agentic-wallet/references/security.md +47 -0
  107. package/skills/binance-web3/binance-agentic-wallet/references/send.md +53 -0
  108. package/skills/binance-web3/binance-agentic-wallet/references/wallet-setting.md +86 -0
  109. package/skills/binance-web3/binance-agentic-wallet/references/wallet-view.md +312 -0
  110. package/skills/binance-web3/binance-agentic-wallet/references/x402-payment.md +259 -0
  111. package/skills/binance-web3/binance-tokenized-securities-info/SKILL.md +613 -0
  112. package/skills/binance-web3/crypto-market-rank/SKILL.md +91 -0
  113. package/skills/binance-web3/crypto-market-rank/references/cli.md +219 -0
  114. package/skills/binance-web3/crypto-market-rank/scripts/cli.mjs +149 -0
  115. package/skills/binance-web3/meme-rush/SKILL.md +72 -0
  116. package/skills/binance-web3/meme-rush/references/cli.md +158 -0
  117. package/skills/binance-web3/meme-rush/scripts/cli.mjs +101 -0
  118. package/skills/binance-web3/query-address-info/SKILL.md +61 -0
  119. package/skills/binance-web3/query-address-info/references/cli.md +56 -0
  120. package/skills/binance-web3/query-address-info/scripts/cli.mjs +132 -0
  121. package/skills/binance-web3/query-token-audit/SKILL.md +162 -0
  122. package/skills/binance-web3/query-token-info/SKILL.md +83 -0
  123. package/skills/binance-web3/query-token-info/references/cli.md +135 -0
  124. package/skills/binance-web3/query-token-info/scripts/cli.mjs +112 -0
  125. package/skills/binance-web3/trading-signal/SKILL.md +66 -0
  126. package/skills/binance-web3/trading-signal/references/cli.md +90 -0
  127. package/skills/binance-web3/trading-signal/scripts/cli.mjs +92 -0
  128. package/skills/four-meme/four-guard/API-Contract-TaxToken.md +277 -0
  129. package/skills/four-meme/four-guard/API-CreateToken.02-02-2026.md +285 -0
  130. package/skills/four-meme/four-guard/API-Documents.03-03-2026.md +789 -0
  131. package/skills/four-meme/four-guard/AgentIdentifier.abi +585 -0
  132. package/skills/four-meme/four-guard/README.md +21 -0
  133. package/skills/four-meme/four-guard/SKILL.md +31 -0
  134. package/skills/four-meme/four-guard/TaxToken.abi +969 -0
  135. package/skills/four-meme/four-guard/TokenIdentifierSample.js_ +81 -0
  136. package/skills/four-meme/four-guard/TokenIdentifierSample.sol +69 -0
  137. package/skills/four-meme/four-guard/TokenManager.lite.abi +836 -0
  138. package/skills/four-meme/four-guard/TokenManager2.lite.abi +2325 -0
  139. package/skills/four-meme/four-guard/TokenManagerHelper3.abi +999 -0
  140. package/skills/four-meme/four-guard/go.mod +36 -0
  141. package/skills/four-meme/four-guard/go.sum +127 -0
  142. package/skills/four-meme/four-guard/main.go +183 -0
  143. package/skills/four-meme/four-meme-ai/SKILL.md +31 -0
  144. package/skills/four-meme/four-meme-ai/references/agent-creator-and-wallets.md +87 -0
  145. package/skills/four-meme/four-meme-ai/references/api-create-token.md +55 -0
  146. package/skills/four-meme/four-meme-ai/references/contract-addresses.md +47 -0
  147. package/skills/four-meme/four-meme-ai/references/create-token-scripts.md +131 -0
  148. package/skills/four-meme/four-meme-ai/references/errors.md +29 -0
  149. package/skills/four-meme/four-meme-ai/references/event-listening.md +75 -0
  150. package/skills/four-meme/four-meme-ai/references/execute-trade.md +31 -0
  151. package/skills/four-meme/four-meme-ai/references/tax-token-query.md +38 -0
  152. package/skills/four-meme/four-meme-ai/references/token-query-api.md +44 -0
  153. package/skills/four-meme/four-meme-ai/references/token-tax-info.md +77 -0
  154. package/skills/four-meme/four-meme-ai/scripts/8004-balance.ts +52 -0
  155. package/skills/four-meme/four-meme-ai/scripts/8004-register.ts +108 -0
  156. package/skills/four-meme/four-meme-ai/scripts/create-token-api.ts +321 -0
  157. package/skills/four-meme/four-meme-ai/scripts/create-token-chain.ts +102 -0
  158. package/skills/four-meme/four-meme-ai/scripts/create-token-instant.ts +106 -0
  159. package/skills/four-meme/four-meme-ai/scripts/execute-buy.ts +198 -0
  160. package/skills/four-meme/four-meme-ai/scripts/execute-sell.ts +150 -0
  161. package/skills/four-meme/four-meme-ai/scripts/get-public-config.ts +25 -0
  162. package/skills/four-meme/four-meme-ai/scripts/get-recent-events.ts +76 -0
  163. package/skills/four-meme/four-meme-ai/scripts/get-tax-token-info.ts +69 -0
  164. package/skills/four-meme/four-meme-ai/scripts/get-token-info.ts +94 -0
  165. package/skills/four-meme/four-meme-ai/scripts/quote-buy.ts +85 -0
  166. package/skills/four-meme/four-meme-ai/scripts/quote-sell.ts +66 -0
  167. package/skills/four-meme/four-meme-ai/scripts/send-token.ts +98 -0
  168. package/skills/four-meme/four-meme-ai/scripts/token-get.ts +31 -0
  169. package/skills/four-meme/four-meme-ai/scripts/token-list.ts +134 -0
  170. package/skills/four-meme/four-meme-ai/scripts/token-rankings.ts +162 -0
  171. package/skills/four-meme/four-meme-ai/scripts/verify-events.ts +47 -0
  172. package/skills/four-meme/four-meme-integration/SKILL.md +374 -0
  173. package/skills/four-meme/four-meme-integration/references/agent-creator-and-wallets.md +87 -0
  174. package/skills/four-meme/four-meme-integration/references/api-create-token.md +55 -0
  175. package/skills/four-meme/four-meme-integration/references/contract-addresses.md +47 -0
  176. package/skills/four-meme/four-meme-integration/references/create-token-scripts.md +131 -0
  177. package/skills/four-meme/four-meme-integration/references/errors.md +29 -0
  178. package/skills/four-meme/four-meme-integration/references/event-listening.md +75 -0
  179. package/skills/four-meme/four-meme-integration/references/execute-trade.md +31 -0
  180. package/skills/four-meme/four-meme-integration/references/tax-token-query.md +38 -0
  181. package/skills/four-meme/four-meme-integration/references/token-query-api.md +44 -0
  182. package/skills/four-meme/four-meme-integration/references/token-tax-info.md +77 -0
  183. package/skills/four-meme/four-meme-integration/scripts/8004-balance.ts +52 -0
  184. package/skills/four-meme/four-meme-integration/scripts/8004-register.ts +108 -0
  185. package/skills/four-meme/four-meme-integration/scripts/create-token-api.ts +321 -0
  186. package/skills/four-meme/four-meme-integration/scripts/create-token-chain.ts +102 -0
  187. package/skills/four-meme/four-meme-integration/scripts/create-token-instant.ts +106 -0
  188. package/skills/four-meme/four-meme-integration/scripts/execute-buy.ts +198 -0
  189. package/skills/four-meme/four-meme-integration/scripts/execute-sell.ts +150 -0
  190. package/skills/four-meme/four-meme-integration/scripts/get-public-config.ts +25 -0
  191. package/skills/four-meme/four-meme-integration/scripts/get-recent-events.ts +76 -0
  192. package/skills/four-meme/four-meme-integration/scripts/get-tax-token-info.ts +69 -0
  193. package/skills/four-meme/four-meme-integration/scripts/get-token-info.ts +94 -0
  194. package/skills/four-meme/four-meme-integration/scripts/quote-buy.ts +85 -0
  195. package/skills/four-meme/four-meme-integration/scripts/quote-sell.ts +66 -0
  196. package/skills/four-meme/four-meme-integration/scripts/send-token.ts +98 -0
  197. package/skills/four-meme/four-meme-integration/scripts/token-get.ts +31 -0
  198. package/skills/four-meme/four-meme-integration/scripts/token-list.ts +134 -0
  199. package/skills/four-meme/four-meme-integration/scripts/token-rankings.ts +162 -0
  200. package/skills/four-meme/four-meme-integration/scripts/verify-events.ts +47 -0
  201. package/skills/skillpp/contract-profiler/SKILL.md +118 -0
  202. package/skills/skillpp/newbie-tutor/SKILL.md +85 -0
  203. package/skills/skillpp/opportunity-board/SKILL.md +87 -0
  204. package/skills/skillpp/risk-fusion/SKILL.md +146 -0
  205. package/skills/skillpp/scam-pattern-lab/SKILL.md +115 -0
  206. package/skills/skillpp/wallet-doctor/SKILL.md +119 -0
  207. package/skills/skillpp/watchtower/SKILL.md +72 -0
  208. package/tests/compatibility/v0.1.0.json +117 -0
@@ -0,0 +1,158 @@
1
+ # meme-rush — 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`), Solana (`CT_501`).
9
+
10
+ ---
11
+
12
+ ## `meme-rush` — Launchpad lifecycle tracking
13
+
14
+ > ⚠️ `rankType` selects the lifecycle stage: `10`=New (freshly created, on bonding curve) · `20`=Finalizing (bonding curve nearly complete, about to migrate) · `30`=Migrated (just migrated to DEX).
15
+
16
+ ```bash
17
+ node <skill-dir>/scripts/cli.mjs meme-rush '{"chainId":"CT_501","rankType":10,"limit":20}'
18
+ ```
19
+
20
+ ### Parameters (body is a JSON object; only `chainId` + `rankType` are required)
21
+
22
+ **Core:**
23
+
24
+ | Field | Type | Required | Description |
25
+ |---|---|---|---|
26
+ | `chainId` | string | **yes** | `"56"` (BSC) or `"CT_501"` (Solana) |
27
+ | `rankType` | integer | **yes** | `10`=New · `20`=Finalizing · `30`=Migrated |
28
+ | `limit` | integer | no | Max results (default 40, max 200) |
29
+ | `keywords` / `excludes` | string[] | no | Include / exclude symbol patterns (max 5 each) |
30
+
31
+ **Token filters (Min/Max pairs):** `progress` (string, 0–100) · `tokenAge` (long) · `holders` (long) · `liquidity` (string) · `volume` (string) · `marketCap` (string) · `count` / `countBuy` / `countSell` (long).
32
+
33
+ **Holder distribution filters (Min/Max, string %):** `holdersTop10Percent` · `holdersDevPercent` · `holdersSniperPercent` · `holdersInsiderPercent` · `bundlerHoldingPercent` · `newWalletHoldingPercent` · `bnHoldingPercent` · `bnHolders` (long) · `kolHolders` (long) · `proHolders` (long).
34
+
35
+ **Dev & launch filters:** `devMigrateCountMin/Max` (long) · `devPosition` (`2`=dev sold all) · `devBurnedToken` (`1`=yes) · `excludeDevWashTrading` (`1`=yes) · `excludeInsiderWashTrading` (`1`=yes).
36
+
37
+ **Other filters:** `protocol` (int[]; see Protocol Reference below) · `exclusive` (`1`=Binance exclusive) · `paidOnDexScreener` · `pumpfunLiving` · `cmcBoost` · `globalFeeMin/Max` (Solana only) · `pairAnchorAddress` (string[]) · `tokenSocials.atLeastOne` (`1`=yes) · `tokenSocials.socials` (string[]: `website` / `twitter` / `telegram`).
38
+
39
+ ### Protocol Reference
40
+
41
+ Complete list of `protocol` codes (used in `protocol[]` filter and returned on each token).
42
+
43
+ | Code | Platform | Chain | | Code | Platform | Chain |
44
+ |---|---|---|---|---|---|---|
45
+ | 1001 | Pump.fun | Solana | | 1010 | Moonshot | Solana |
46
+ | 1002 | Moonit | Solana | | 1011 | Jup Studio | Solana |
47
+ | 1003 | Pump AMM | Solana | | 1012 | Bags | Solana |
48
+ | 1004 | Launch Lab | Solana | | 1013 | Believer | Solana |
49
+ | 1005 | Raydium V4 | Solana | | 1014 | Meteora DAMM V2 | Solana |
50
+ | 1006 | Raydium CPMM | Solana | | 1015 | Meteora Pools | Solana |
51
+ | 1007 | Raydium CLMM | Solana | | 1016 | Orca | Solana |
52
+ | 1008 | BONK | Solana | | 2001 | Four.meme | BSC |
53
+ | 1009 | Dynamic BC | Solana | | 2002 | Flap | BSC |
54
+
55
+ ### Return fields (under `.data[]`)
56
+
57
+ **Core:**
58
+
59
+ | Field | Type | Description |
60
+ |---|---|---|
61
+ | `chainId` / `contractAddress` / `symbol` / `name` / `decimals` | — | Identity |
62
+ | `icon` | string | Logo path (prefix `https://bin.bnbstatic.com`) |
63
+ | `price` / `priceChange` | string | Current price (USD), 24h change (%) |
64
+ | `marketCap` / `liquidity` / `volume` | string | USD, string-encoded |
65
+ | `holders` | long | Holder count |
66
+ | `progress` | string | Bonding curve progress — pre-formatted, append `%` directly |
67
+ | `protocol` | integer | Launchpad protocol code |
68
+ | `exclusive` | integer | `1` = Binance exclusive token |
69
+
70
+ **Trade counts:** `count` / `countBuy` / `countSell` (long, 24h).
71
+
72
+ **Holder distribution (all string %, append `%` directly):** `holdersTop10Percent` · `holdersDevPercent` · `holdersSniperPercent` · `holdersInsiderPercent` · `bnHoldingPercent` · `kolHoldingPercent` · `proHoldingPercent` · `newWalletHoldingPercent` · `bundlerHoldingPercent`.
73
+
74
+ **Dev & migration:** `devAddress` · `devSellPercent` · `devMigrateCount` · `devPosition` (`2`=dev sold all) · `migrateStatus` (`0`/`1`) · `migrateTime` · `createTime`.
75
+
76
+ **Tags & flags:** `tagDevWashTrading` · `tagInsiderWashTrading` · `tagDevBurnedToken` · `tagPumpfunLiving` · `tagCmcBoost` · `paidOnDexScreener` · `launchTaxEnable` · `taxRate` · `globalFee` (Solana only).
77
+
78
+ **Socials:** `socials.website` / `socials.twitter` / `socials.telegram`.
79
+
80
+ **AI narrative:** `narrativeText.en` / `narrativeText.cn`.
81
+
82
+ ---
83
+
84
+ ## `topic-rush` — AI-powered hot-topic discovery (GET)
85
+
86
+ > ⚠️ `rankType`: `10`=Latest (newest hot topics) · `20`=Rising (topics with ATH net-inflow between $1k and $20k).
87
+ > ⚠️ **`sort` default convention:** when the user does not specify a preference, use `sort=10` (create time). `sort=20` = net inflow.
88
+
89
+ ```bash
90
+ node <skill-dir>/scripts/cli.mjs topic-rush '{"chainId":"CT_501","rankType":10,"sort":10,"asc":false}'
91
+ ```
92
+
93
+ ### Parameters
94
+
95
+ | Field | Type | Required | Description |
96
+ |---|---|---|---|
97
+ | `chainId` | string | **yes** | `"56"` or `"CT_501"` |
98
+ | `rankType` | integer | **yes** | `10`=Latest · `20`=Rising |
99
+ | `sort` | integer | **yes** | `10`=create time (default) · `20`=net inflow |
100
+ | `asc` | boolean | no | `true`=ascending, `false`=descending |
101
+ | `keywords` | string | no | Case-insensitive contains match |
102
+ | `topicType` | string | no | Comma-separated topic-type filter |
103
+ | `tokenSizeMin/Max` | integer | no | Associated-token count range |
104
+ | `netInflowMin/Max` | string | no | Topic net-inflow range (USD) |
105
+
106
+ ### Return fields (under `.data[]`)
107
+
108
+ **Topic-level:**
109
+
110
+ | Field | Type | Description |
111
+ |---|---|---|
112
+ | `topicId` | string | Unique topic ID |
113
+ | `chainId` | string | Chain ID |
114
+ | `name.topicNameEn` / `name.topicNameCn` | string | Multi-language topic name |
115
+ | `type` | string | Topic category (e.g. `Culture`) |
116
+ | `close` | integer | `0`=active, `1`=closed |
117
+ | `topicLink` | string | Related tweet / post URL |
118
+ | `createTime` | long | Topic creation timestamp (ms) |
119
+ | `progress` | string | Topic progress — pre-formatted %, append `%` directly |
120
+ | `aiSummary.aiSummaryEn` / `aiSummary.aiSummaryCn` | string | AI-generated narrative |
121
+ | `topicNetInflow` / `topicNetInflow1h` / `topicNetInflowAth` | string | Net inflow: total / 1h / ATH (USD) |
122
+ | `tokenSize` | integer | Number of associated tokens |
123
+ | `deepAnalysisFlag` | integer | `1`=deep analysis available |
124
+ | `topicTags` | string[] | Topic tags (e.g. `Crypto Native`, `Celebrity`) |
125
+
126
+ **Associated tokens** (`tokenList[]` within each topic):
127
+
128
+ | Field | Type | Description |
129
+ |---|---|---|
130
+ | `chainId` / `contractAddress` / `symbol` / `decimals` | — | Identity |
131
+ | `icon` | string | Logo path (prefix `https://bin.bnbstatic.com`) |
132
+ | `createTime` | long | Token creation timestamp (ms) |
133
+ | `marketCap` / `liquidity` | string | USD |
134
+ | `priceChange24h` | string | 24h % (pre-formatted) |
135
+ | `netInflow` / `netInflow1h` | string | Net inflow since topic creation / last 1h (USD) |
136
+ | `volumeBuy` / `volumeSell` / `volume1hBuy` / `volume1hSell` | string | Volume breakdown (USD) |
137
+ | `uniqueTrader{5m,1h,4h,24h}` | long | Unique traders by window |
138
+ | `count{5m,1h,4h,24h}` | long | Trade count by window |
139
+ | `holders` / `kolHolders` / `smartMoneyHolders` | long | Holder stats |
140
+ | `protocol` | integer | Launchpad protocol code (`0` / null = DEX token) |
141
+ | `internal` | integer | `1`=on bonding curve |
142
+ | `migrateStatus` | integer | `1`=migrated |
143
+
144
+ **Nested shape:** each topic has `name: {topicNameEn, topicNameCn}` (and `aiSummary` similarly) plus `tokenList[]` with full per-token stats inline.
145
+
146
+ ---
147
+
148
+ ## Errors
149
+
150
+ Exit codes: `0` ok · `1` upstream/usage (stderr: reason; stdout: body with business `code`) · `3` network.
151
+ Business `code`: `000000` ok · `100004` rate-limited · `100002` bad param · `000400` token not found / unsupported chain.
152
+
153
+ ---
154
+
155
+ ## Notes
156
+
157
+ - Percentage fields (`progress`, holder %, `devSellPercent`, `taxRate`, `priceChange24h`) are pre-formatted — append `%` directly, do **not** multiply by 100.
158
+ - `taxRate` visibility: `protocol=2001` (Four.meme) only on Migrated (`rankType=30`); `protocol=2002` (Flap) on all lists.
@@ -0,0 +1,101 @@
1
+ #!/usr/bin/env node
2
+ import { fileURLToPath } from "url";
3
+ // meme-rush CLI - self-contained, zero-dep, Node >= 22
4
+ // Usage: node cli.mjs <command> '<json_params>'
5
+ //
6
+ // Commands:
7
+ // meme-rush POST Launchpad lifecycle tracking (new / finalizing / migrated)
8
+ // topic-rush GET AI-powered hot-topic discovery with associated tokens
9
+ //
10
+
11
+ // ---- inline HTTP helper (self-contained, zero dependency) ----
12
+ const TIMEOUT_MS = 10_000;
13
+ const UA = { 'Accept-Encoding': 'identity', 'User-Agent': 'binance-web3/2.0 (Skill)' };
14
+
15
+ const qs = (p) => Object.entries(p)
16
+ .filter(([, v]) => v != null)
17
+ .map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(v)}`)
18
+ .join('&');
19
+
20
+ async function call({ url, method = 'GET', body, headers = {} }) {
21
+ const ctrl = new AbortController();
22
+ const timer = setTimeout(() => ctrl.abort(), TIMEOUT_MS);
23
+ const opts = { method, headers: { ...UA, ...headers }, signal: ctrl.signal };
24
+ if (method === 'POST') { opts.headers['content-type'] = 'application/json'; opts.body = JSON.stringify(body || {}); }
25
+ let res;
26
+ try { res = await fetch(url, opts); }
27
+ catch { clearTimeout(timer); throw Object.assign(new Error('Network request failed'), { exitCode: 3 }); }
28
+ clearTimeout(timer);
29
+ const data = await res.json();
30
+ if (res.status >= 400) throw Object.assign(new Error(`HTTP ${res.status}`), { exitCode: 1, body: data });
31
+ return data;
32
+ }
33
+
34
+ // ---- per-command supported chains (client-side fail-fast) ----
35
+ const CHAINS = {
36
+ 'meme-rush': new Set(['56', 'CT_501', '8453']),
37
+ 'topic-rush': new Set(['56', 'CT_501']),
38
+ };
39
+
40
+ function validateChainId(cmd, chainId) {
41
+ const allowed = CHAINS[cmd];
42
+ if (!allowed) return;
43
+ const id = String(chainId ?? '');
44
+ if (!allowed.has(id)) {
45
+ const supported = [...allowed].map((c) => `"${c}"`).join(', ');
46
+ throw Object.assign(
47
+ new Error(`${cmd}: unsupported chainId "${chainId}". Supported: ${supported}`),
48
+ { exitCode: 1 },
49
+ );
50
+ }
51
+ }
52
+
53
+ // ---- commands: (params) => { url, method?, body?, headers? } ----
54
+ const COMMANDS = {
55
+ 'meme-rush': (p) => {
56
+ validateChainId('meme-rush', p.chainId);
57
+ return {
58
+ url: 'https://web3.binance.com/bapi/defi/v1/public/wallet-direct/buw/wallet/market/token/pulse/rank/list/ai',
59
+ method: 'POST',
60
+ body: p,
61
+ };
62
+ },
63
+ 'topic-rush': (p) => {
64
+ validateChainId('topic-rush', p.chainId);
65
+ return {
66
+ url: `https://web3.binance.com/bapi/defi/v2/public/wallet-direct/buw/wallet/market/token/social-rush/rank/list/ai?${qs(p)}`,
67
+ };
68
+ },
69
+ };
70
+
71
+ // ---- exports (for unit testing; direct execution still works - see dispatch below) ----
72
+ export { COMMANDS, call, qs, UA, TIMEOUT_MS, CHAINS, validateChainId };
73
+
74
+ // ---- CLI dispatch (only runs when executed directly, not when imported) ----
75
+ if (fileURLToPath(import.meta.url) === process.argv[1]) {
76
+ const [cmd, paramsStr] = process.argv.slice(2);
77
+
78
+ if (!cmd || cmd === '--help' || cmd === '-h') {
79
+ console.log("Usage: node cli.mjs <command> '<json_params>'\n\nCommands:");
80
+ for (const name of Object.keys(COMMANDS)) console.log(` ${name}`);
81
+ process.exit(0);
82
+ }
83
+
84
+ const builder = COMMANDS[cmd];
85
+ if (!builder) { console.error(`Unknown command: ${cmd}\nRun with --help to see available commands.`); process.exit(1); }
86
+
87
+ let params = {};
88
+ if (paramsStr) {
89
+ try { params = JSON.parse(paramsStr); }
90
+ catch { console.error('Invalid JSON params'); process.exit(1); }
91
+ }
92
+
93
+ try {
94
+ const result = await call(builder(params));
95
+ console.log(JSON.stringify(result, null, 2));
96
+ } catch (err) {
97
+ console.error(err.message);
98
+ if (err.body) console.log(JSON.stringify(err.body, null, 2));
99
+ process.exit(err.exitCode || 1);
100
+ }
101
+ }
@@ -0,0 +1,61 @@
1
+ ---
2
+ name: query-address-info
3
+ description: |
4
+ Snapshot of a single wallet's token holdings on a specific chain — list of every token currently held with
5
+ name, symbol, current price, 24h price change, and holding quantity.
6
+ Use when the user provides an explicit wallet address (or says "my wallet") and wants the current portfolio:
7
+ "what does 0x... hold", "wallet balance breakdown", "list positions for this address",
8
+ "what tokens are in this wallet", "show me the holdings of address".
9
+ metadata:
10
+ author: binance-web3-team
11
+ version: "2.0"
12
+ ---
13
+
14
+ # Query Address Info Skill
15
+
16
+ ## Overview
17
+
18
+ This skill queries any on-chain wallet address for token holdings, supporting:
19
+
20
+ List of all tokens held by a wallet address
21
+ Current price of each token
22
+ 24-hour price change percentage
23
+ Holding quantity
24
+
25
+ ## When to Use This Skill
26
+
27
+ | User intent | Command |
28
+ |-------------|---------|
29
+ | List a wallet's token holdings with price and 24h change | `positions` |
30
+
31
+ ## Supported Chains
32
+
33
+ | Chain | chainId |
34
+ |-------|---------|
35
+ | BSC | `56` |
36
+ | Solana | `CT_501` |
37
+ | Base | `8453` |
38
+ | Ethereum | `1` |
39
+
40
+ ## How to Call APIs
41
+
42
+ ```bash
43
+ node skill-dir/scripts/cli.mjs positions '{"address":"0x...","chainId":"56","offset":0}'
44
+ ```
45
+
46
+ ## Commands
47
+
48
+ | Command | Purpose | Required args | Example |
49
+ |---------|---------|---------------|---------|
50
+ | `positions` | List wallet token holdings (price + 24h change + quantity) | `address`, `chainId`, `offset` | `node skill-dir/scripts/cli.mjs positions '{"address":"0x...","chainId":"56","offset":0}'` |
51
+
52
+ ## Rules
53
+
54
+ - **`offset` is required on every call — including the first page.** Pass `0` to fetch the first page; increment for subsequent pages. Omitting it causes an upstream validation error.
55
+ - **Pagination**: repeat with increasing `offset` until `data.list` is empty or shorter than the page size.
56
+ - **Icon URL prefix**: `icon` is a relative path (e.g., `/images/web3-data/public/token/logos/xxxx.png`). Prepend `https://bin.bnbstatic.com` to render.
57
+ - **Numbers as strings**: `price`, `percentChange24h`, `remainQty` are strings — convert to numbers before arithmetic.
58
+
59
+ ## Full CLI Reference
60
+
61
+ See [`references/cli.md`](references/cli.md) for per-subcommand invocations, parameter tables, return-field tables, and real response samples.
@@ -0,0 +1,56 @@
1
+ # query-address-info — 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
+ ---
9
+
10
+ ## `positions` — Wallet active-position list
11
+
12
+ ```bash
13
+ node <skill-dir>/scripts/cli.mjs positions '{"address":"0x...","chainId":"56","offset":0}'
14
+ ```
15
+
16
+ ### Parameters
17
+
18
+ | Param | Type | Required | Description |
19
+ |---|---|---|---|
20
+ | `address` | string | **yes** | Wallet address (EVM `0x...` or Solana base58) |
21
+ | `chainId` | string | **yes** | `"56"` (BSC) · `"8453"` (Base) · `"CT_501"` (Solana) |
22
+ | `offset` | number | **yes** | Pagination offset (start from `0`) |
23
+
24
+ ### Return fields (under `.data.list[]`)
25
+
26
+ | Field | Type | Description |
27
+ |---|---|---|
28
+ | `chainId` | string | Chain identifier |
29
+ | `address` | string | Queried wallet address (lowercased) |
30
+ | `contractAddress` | string | Token contract address |
31
+ | `binanceTokenId` | string | Binance-internal stable token ID |
32
+ | `name`, `symbol` | string | Token display names |
33
+ | `icon` | string | Logo path — prefix with `https://bin.bnbstatic.com` |
34
+ | `decimals` | number | Token decimals |
35
+ | `price` | string | Current USD price (decimal string) |
36
+ | `percentChange24h` | string | 24h price change (%, signed decimal string) |
37
+ | `baseCoinPrice` | string | USD price of the chain native coin |
38
+ | `remainQty` | string | Holding quantity (human-readable, already divided by decimals) |
39
+ | `circulatingSupply` | string | Circulating supply |
40
+ | `riskLevel`, `riskLevelInt` | string \| null, number | Risk badge (`"LOW"` = 1, etc.); may be `null` |
41
+ | `lowLiquidity` | number | `1` = low-liquidity warning |
42
+
43
+ ### Response envelope (under `.data`)
44
+
45
+ | Field | Type | Description |
46
+ |---|---|---|
47
+ | `offset` | number | Echo of request offset |
48
+ | `list` | array \| `null` | Position list; `null` when wallet has no tracked holdings |
49
+ | `addressStatus` | any | Reserved (currently always `null`) |
50
+
51
+ ---
52
+
53
+ ## Errors
54
+
55
+ Exit codes: `0` ok · `1` upstream/usage (stderr: reason; stdout: body with business `code`) · `3` network.
56
+ Business `code`: `000000` ok · `100004` rate-limited · `100002` bad param · `000400` unsupported chain / bad address.
@@ -0,0 +1,132 @@
1
+ #!/usr/bin/env node
2
+ import { fileURLToPath } from "url";
3
+ // query-address-info CLI - self-contained, zero-dep, Node >= 22
4
+ // Usage: node cli.mjs <command> '<json_params>'
5
+ //
6
+ // Commands:
7
+ // positions GET wallet active-position list (token balances + 24h price change)
8
+ //
9
+
10
+ // ---- inline HTTP helper (self-contained, zero dependency) ----
11
+ const TIMEOUT_MS = 10_000;
12
+ const UA = { 'Accept-Encoding': 'identity', 'User-Agent': 'binance-web3/2.0 (Skill)' };
13
+
14
+ const qs = (p) => Object.entries(p)
15
+ .filter(([, v]) => v != null)
16
+ .map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(v)}`)
17
+ .join('&');
18
+
19
+ async function call({ url, method = 'GET', body, headers = {} }) {
20
+ const ctrl = new AbortController();
21
+ const timer = setTimeout(() => ctrl.abort(), TIMEOUT_MS);
22
+ const opts = { method, headers: { ...UA, ...headers }, signal: ctrl.signal };
23
+ if (method === 'POST') { opts.headers['content-type'] = 'application/json'; opts.body = JSON.stringify(body || {}); }
24
+ let res;
25
+ try { res = await fetch(url, opts); }
26
+ catch { clearTimeout(timer); throw Object.assign(new Error('Network request failed'), { exitCode: 3 }); }
27
+ clearTimeout(timer);
28
+ const data = await res.json();
29
+ if (res.status >= 400) throw Object.assign(new Error(`HTTP ${res.status}`), { exitCode: 1, body: data });
30
+ return data;
31
+ }
32
+
33
+ // ---- supported chains (client-side fail-fast) ----
34
+ const SUPPORTED_CHAINS = new Set(['1', '56', '8453', 'CT_501']);
35
+
36
+ function validateChainId(chainId) {
37
+ const id = String(chainId ?? '');
38
+ if (!SUPPORTED_CHAINS.has(id)) {
39
+ const supported = [...SUPPORTED_CHAINS].map((c) => `"${c}"`).join(', ');
40
+ throw Object.assign(
41
+ new Error(`positions: unsupported chainId "${chainId}". Supported: ${supported}`),
42
+ { exitCode: 1 },
43
+ );
44
+ }
45
+ }
46
+
47
+ // Client-side fail-fast for malformed addresses.
48
+ const EVM_CHAINS = new Set(['1', '56', '8453']);
49
+ const SOLANA_CHAIN = 'CT_501';
50
+ const EVM_ADDRESS_RE = /^0x[0-9a-fA-F]{40}$/;
51
+ const SOLANA_ADDRESS_RE = /^[1-9A-HJ-NP-Za-km-z]{32,44}$/;
52
+ const EVM_ZERO = '0x' + '0'.repeat(40);
53
+
54
+ function validationError(msg) {
55
+ return Object.assign(new Error(msg), { exitCode: 1 });
56
+ }
57
+
58
+ function validateAddress(address, chainId) {
59
+ if (typeof address !== 'string' || address.length === 0) {
60
+ throw validationError('address is required');
61
+ }
62
+ // Reject whitespace, control chars, URL-encoded sequences (CRLF injection guard).
63
+ if (/\s/.test(address) || /[\x00-\x1f\x7f]/.test(address) || /%/.test(address)) {
64
+ throw validationError('address contains invalid characters (whitespace / control / %-encoded)');
65
+ }
66
+ // Reject non-ASCII (rejects unicode look-alikes and multibyte chars).
67
+ if (/[^\x20-\x7e]/.test(address)) {
68
+ throw validationError('address contains non-ASCII characters');
69
+ }
70
+
71
+ const chain = String(chainId ?? '');
72
+ if (EVM_CHAINS.has(chain)) {
73
+ if (!EVM_ADDRESS_RE.test(address)) {
74
+ throw validationError(`invalid EVM address for chainId=${chain}: expected 0x + 40 hex chars`);
75
+ }
76
+ if (address.toLowerCase() === EVM_ZERO) {
77
+ throw validationError('zero address (0x000...000) is not a valid wallet');
78
+ }
79
+ return;
80
+ }
81
+ if (chain === SOLANA_CHAIN) {
82
+ if (!SOLANA_ADDRESS_RE.test(address)) {
83
+ throw validationError('invalid Solana address: expected base58, 32-44 chars');
84
+ }
85
+ return;
86
+ }
87
+ // Unknown chain - let upstream decide.
88
+ }
89
+
90
+ // ---- commands: (params) => { url, method?, body?, headers? } ----
91
+ const COMMANDS = {
92
+ positions: (p) => {
93
+ validateChainId(p.chainId);
94
+ validateAddress(p.address, p.chainId);
95
+ return {
96
+ url: `https://web3.binance.com/bapi/defi/v3/public/wallet-direct/buw/wallet/address/pnl/active-position-list/ai?${qs(p)}`,
97
+ headers: { clienttype: 'web', clientversion: '1.2.0' },
98
+ };
99
+ },
100
+ };
101
+
102
+ // ---- exports (for unit testing; direct execution still works - see dispatch below) ----
103
+ export { COMMANDS, call, qs, UA, TIMEOUT_MS, validateAddress, validateChainId, SUPPORTED_CHAINS };
104
+
105
+ // ---- CLI dispatch (only runs when executed directly, not when imported) ----
106
+ if (fileURLToPath(import.meta.url) === process.argv[1]) {
107
+ const [cmd, paramsStr] = process.argv.slice(2);
108
+
109
+ if (!cmd || cmd === '--help' || cmd === '-h') {
110
+ console.log("Usage: node cli.mjs <command> '<json_params>'\n\nCommands:");
111
+ for (const name of Object.keys(COMMANDS)) console.log(` ${name}`);
112
+ process.exit(0);
113
+ }
114
+
115
+ const builder = COMMANDS[cmd];
116
+ if (!builder) { console.error(`Unknown command: ${cmd}\nRun with --help to see available commands.`); process.exit(1); }
117
+
118
+ let params = {};
119
+ if (paramsStr) {
120
+ try { params = JSON.parse(paramsStr); }
121
+ catch { console.error('Invalid JSON params'); process.exit(1); }
122
+ }
123
+
124
+ try {
125
+ const result = await call(builder(params));
126
+ console.log(JSON.stringify(result, null, 2));
127
+ } catch (err) {
128
+ console.error(err.message);
129
+ if (err.body) console.log(JSON.stringify(err.body, null, 2));
130
+ process.exit(err.exitCode || 1);
131
+ }
132
+ }
@@ -0,0 +1,162 @@
1
+ ---
2
+ name: query-token-audit
3
+ description: |
4
+ Query token security audit to detect scams, honeypots, and malicious contracts before trading.
5
+ Returns comprehensive security analysis including contract risks, trading risks, and scam detection.
6
+ Use when users ask "is this token safe?", "check token security", "audit token", or before any swap.
7
+ metadata:
8
+ author: binance-web3-team
9
+ version: "1.4"
10
+ ---
11
+
12
+ # Query Token Audit Skill
13
+
14
+ ## Overview
15
+
16
+ | API | Function | Use Case |
17
+ |-----|---------------------|----------|
18
+ | Token Security Audit | Token security scan | Detect honeypot, rug pull, scam, malicious functions |
19
+
20
+ ## Use Cases
21
+
22
+ 1. **Pre-Trade Safety Check**: Verify token security before buying or swapping
23
+ 2. **Scam Detection**: Identify honeypots, fake tokens, and malicious contracts
24
+ 3. **Contract Analysis**: Check for dangerous ownership functions and hidden risks
25
+ 4. **Tax Verification**: Detect unusual buy/sell taxes before trading
26
+
27
+ ## Supported Chains
28
+
29
+ | Chain Name | chainId |
30
+ |------------|---------|
31
+ | BSC | 56 |
32
+ | Base | 8453 |
33
+ | Solana | CT_501 |
34
+ | Ethereum | 1 |
35
+
36
+ ---
37
+
38
+ ## API: Token Security Audit
39
+
40
+ ### Method: POST
41
+
42
+ **URL**:
43
+ ```
44
+ https://web3.binance.com/bapi/defi/v1/public/wallet-direct/security/token/audit
45
+ ```
46
+
47
+ **Request Parameters**:
48
+
49
+ | Parameter | Type | Required | Description |
50
+ |-----------|------|----------|-------------|
51
+ | binanceChainId | string | Yes | Chain ID: `CT_501` (Solana), `56` (BSC), `8453` (Base), `1` (Ethereum) |
52
+ | contractAddress | string | Yes | Token contract address |
53
+ | requestId | string | Yes | Unique request ID (UUID v4 format) |
54
+
55
+ **Request Headers**:
56
+ ```
57
+ Content-Type: application/json
58
+ Accept-Encoding: identity
59
+ User-Agent: binance-web3/1.4 (Skill)
60
+ ```
61
+
62
+ **Example Request**:
63
+ ```bash
64
+ curl --location 'https://web3.binance.com/bapi/defi/v1/public/wallet-direct/security/token/audit' \
65
+ --header 'Content-Type: application/json' \
66
+ --header 'source: agent' \
67
+ --header 'Accept-Encoding: identity' \
68
+ --header 'User-Agent: binance-web3/1.4 (Skill)' \
69
+ --data '{
70
+ "binanceChainId": "56",
71
+ "contractAddress": "0x55d398326f99059ff775485246999027b3197955",
72
+ "requestId": "'$(uuidgen)'"
73
+ }'
74
+ ```
75
+
76
+ **Response Example**:
77
+ ```json
78
+ {
79
+ "code": "000000",
80
+ "data": {
81
+ "requestId": "d6727c70-de6c-4fad-b1d7-c05422d5f26b",
82
+ "hasResult": true,
83
+ "isSupported": true,
84
+ "riskLevelEnum": "LOW",
85
+ "riskLevel": 1,
86
+ "extraInfo": {
87
+ "buyTax": "0",
88
+ "sellTax": "0",
89
+ "isVerified": true
90
+ },
91
+ "riskItems": [
92
+ {
93
+ "id": "CONTRACT_RISK",
94
+ "name": "Contract Risk",
95
+ "details": [
96
+ {
97
+ "title": "Honeypot Risk Not Found",
98
+ "description": "A honeypot is a token that can be bought but not sold",
99
+ "isHit": false,
100
+ "riskType": "RISK"
101
+ }
102
+ ]
103
+ }
104
+ ]
105
+ },
106
+ "success": true
107
+ }
108
+ ```
109
+
110
+ **Response Fields**:
111
+
112
+ | Field | Type | Description |
113
+ |-----------------------------------|------|-----------------------------------------------------------|
114
+ | hasResult | boolean | Whether audit data is available |
115
+ | isSupported | boolean | Whether the token is supported for audit |
116
+ | riskLevelEnum | string | Risk level: `LOW`, `MEDIUM`, `HIGH` |
117
+ | riskLevel | number | Risk level number (1-5) |
118
+ | extraInfo.buyTax | string | Buy tax percentage (null if unknown) |
119
+ | extraInfo.sellTax | string | Sell tax percentage (null if unknown) |
120
+ | extraInfo.isVerified | boolean | Whether contract code is verified |
121
+ | riskItems[].id | string | Risk category: `CONTRACT_RISK`, `TRADE_RISK`, `SCAM_RISK` |
122
+ | riskItems[].details[].title | string | Risk check title |
123
+ | riskItems[].details[].description | string | Risk check description |
124
+ | riskItems[].details[].isHit | boolean | true = risk detected |
125
+ | riskItems[].details[].riskType | string | `RISK` (critical) or `CAUTION` (warning) |
126
+
127
+ **Risk Level Reference**:
128
+
129
+ | riskLevel | riskLevelEnum | Action | Description |
130
+ |-----------|---------------|--------|-------------|
131
+ | 0-1 | LOW | Proceed with caution | Lower risk detected, but NOT guaranteed safe. DYOR. |
132
+ | 2-3 | MEDIUM | Exercise caution | Moderate risks detected, review risk items carefully |
133
+ | 4 | HIGH | Avoid trading | Critical risks detected, high probability of loss |
134
+ | 5 | HIGH | Block transaction | Severe risks confirmed, do NOT proceed |
135
+
136
+ **IMPORTANT**: LOW risk does NOT mean "safe." Audit results are point-in-time snapshots. Project teams can modify contracts or restrict liquidity after purchase. These risks cannot be predicted in advance.
137
+
138
+ **Response Handling**:
139
+
140
+ - If `hasResult=false` OR `isSupported=false`:
141
+ → Reply: "Security audit data is not available for this token on this chain."
142
+ → Do NOT show `riskLevel`, `riskLevelEnum`, or `riskItems` (data is unreliable when either field is false)
143
+ → You may suggest the user verify the contract address and chain, or try again later
144
+ - If `hasResult=true` AND `isSupported=true`:
145
+ → Show the full audit result including risk level, tax info, and all risk items
146
+ → Apply the Risk Level Reference table above for actionable guidance
147
+
148
+ ---
149
+
150
+ ## User Agent Header
151
+
152
+ Include `User-Agent` header with the following string: `binance-web3/1.4 (Skill)`
153
+
154
+ ## Notes
155
+
156
+ 1. All numeric fields are string format, convert when using
157
+ 2. Audit results are ONLY valid when `hasResult: true` AND `isSupported: true`
158
+ 3. `riskLevel: 5` means transaction should be blocked; `riskLevel: 4` is high risk
159
+ 4. Tax thresholds: >10% is critical, 5-10% is warning, <5% is acceptable
160
+ 5. Generate unique UUID v4 for each audit request
161
+ 6. Only output security check risk flags, do NOT provide any investment advice
162
+ 7. Always end with disclaimer: `⚠️ This audit result is for reference only and does not constitute investment advice. Always conduct your own research.`