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,613 @@
1
+ ---
2
+ name: binance-tokenized-securities-info
3
+ description: |
4
+ Query Ondo tokenized US stock data on Binance Web3.
5
+ Covers: supported stock token list, RWA metadata (company info, attestation reports),
6
+ market and per-asset trading status (with corporate action codes for earnings, dividends, splits),
7
+ real-time on-chain data (token price, holders, circulating supply, market cap),
8
+ US stock fundamentals (P/E, dividend yield, 52-week range), and token K-Line/candlestick charts.
9
+
10
+ Use this skill when users ask about:
11
+ - Tokenized stock price, holders, or on-chain data for specific tickers
12
+ - Whether a stock token is tradable, paused, or halted
13
+ - Ondo RWA token list or which US stocks are available on-chain
14
+ - Corporate actions affecting a token (dividends, stock splits, earnings halt)
15
+ - Stock token K-Line or candlestick chart data
16
+ - Comparing on-chain token price vs US stock price
17
+
18
+ NOT for general crypto tokens (BTC, ETH, SOL, etc.) — use query-token-info for those.
19
+ metadata:
20
+ author: binance-web3-team
21
+ version: "1.1"
22
+ ---
23
+
24
+ # Binance Tokenized Securities Info Skill
25
+
26
+ ## Overview
27
+
28
+ | API | Function | Use Case |
29
+ |---------------------|---------------------------|-----------------------------------------------------------------|
30
+ | Token Symbol List | List all tokenized stocks | Browse Ondo supported tickers, filter by type |
31
+ | RWA Meta | Tokenized stock metadata | Company info, concepts, attestation reports |
32
+ | Market Status | Overall market open/close | Check if Ondo market is currently trading |
33
+ | Asset Market Status | Per-asset trading status | Detect corporate actions (earnings, dividends, splits, mergers) |
34
+ | RWA Dynamic V2 | Full real-time data | On-chain price, holders, US stock fundamentals, order limits |
35
+ | Token K-Line | Candlestick charts | OHLC data for on-chain token price technical analysis |
36
+
37
+ ## Recommended Workflows
38
+
39
+ | Scenario | Steps |
40
+ |--------------------------------------------------|----------------------------------------------------------------------------|
41
+ | Look up a stock's fundamentals and on-chain data | API 1 (get `chainId` + `contractAddress` by ticker) → API 5 (dynamic data) |
42
+ | Check if a stock token is tradable | API 3 (overall market status) → API 4 (per-asset status with reason code) |
43
+ | Research a tokenized stock | API 1 (find token) → API 2 (company metadata + attestation reports) |
44
+ | Get K-Line chart data | API 1 (find token) → API 6 (K-Line with interval) |
45
+
46
+ ## Use Cases
47
+
48
+ 1. **List Supported Stocks**: Get all Ondo tokenized tickers with chain and contract info
49
+ 2. **Company Research**: Get company metadata, CEO, industry, concept tags, and attestation reports
50
+ 3. **Market Status Check**: Determine if the Ondo market is open, closed, or in pre/post-market session
51
+ 4. **Corporate Action Detection**: Check if a specific asset is paused or limited due to earnings, dividends, stock splits, mergers, or maintenance
52
+ 5. **Real-Time Data**: Get on-chain price, holder count, circulating supply, US stock P/E, dividend yield, 52-week range, and order limits
53
+ 6. **Technical Analysis**: Fetch token K-Line (candlestick) data with configurable intervals and time ranges
54
+
55
+ ## Key Concept: Token ≠ Share
56
+
57
+ Each token represents `multiplier` shares of the underlying stock, **not exactly 1 share**. Most tokens have a multiplier near 1.0 (cumulative dividend adjustment), but stock-split tokens can be 5.0 or 10.0 (e.g. multiplier = 10.0 means 1 token = 10 shares).
58
+
59
+ ```
60
+ referencePrice = tokenInfo.price ÷ sharesMultiplier
61
+ ```
62
+
63
+ See Notes §6 for common multiplier categories.
64
+
65
+ ## Supported Chains
66
+
67
+ | Chain | chainId |
68
+ |----------|---------|
69
+ | Ethereum | 1 |
70
+ | BSC | 56 |
71
+
72
+ ---
73
+
74
+ ## API 1: Token Symbol List
75
+
76
+ ### Method: GET
77
+
78
+ **URL**:
79
+ ```
80
+ https://www.binance.com/bapi/defi/v1/public/wallet-direct/buw/wallet/market/token/rwa/stock/detail/list/ai
81
+ ```
82
+
83
+ **Request Parameters**:
84
+
85
+ | Parameter | Type | Required | Description |
86
+ |-----------|---------|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
87
+ | type | integer | No | Filter by platform: `1` = Ondo Finance (currently the only supported tokenized stock provider). Omit to return all platforms. **Use `type=1` to retrieve only Ondo tokens.** |
88
+
89
+ **Headers**: `Accept-Encoding: identity`
90
+
91
+ **Example**:
92
+ ```bash
93
+ curl 'https://www.binance.com/bapi/defi/v1/public/wallet-direct/buw/wallet/market/token/rwa/stock/detail/list/ai' \
94
+ -H 'Accept-Encoding: identity' \
95
+ -H 'User-Agent: binance-web3/1.1 (Skill)'
96
+ ```
97
+
98
+ **Response**:
99
+
100
+ ```json
101
+ {
102
+ "code": "000000",
103
+ "data": [
104
+ {
105
+ "chainId": "1",
106
+ "contractAddress": "<CONTRACT_ADDRESS>",
107
+ "symbol": "<TOKEN_SYMBOL_ON>",
108
+ "ticker": "<UNDERLYING_TICKER>",
109
+ "type": 1,
110
+ "multiplier": "1.021663864228987186"
111
+ },
112
+ {
113
+ "chainId": "56",
114
+ "contractAddress": "<CONTRACT_ADDRESS>",
115
+ "symbol": "<TOKEN_SYMBOL_ON>",
116
+ "ticker": "<UNDERLYING_TICKER>",
117
+ "type": 1,
118
+ "multiplier": "1.010063782256545489"
119
+ }
120
+ ],
121
+ "success": true
122
+ }
123
+ ```
124
+
125
+ **Response Fields** (each item in `data`):
126
+
127
+ | Field | Type | Description |
128
+ |-----------------|---------|---------------------------------------------------------------|
129
+ | chainId | string | Chain ID (`1` = Ethereum, `56` = BSC) |
130
+ | contractAddress | string | Token contract address |
131
+ | symbol | string | Token symbol (ticker + `on` suffix, e.g. `<TOKEN_SYMBOL_ON>`) |
132
+ | ticker | string | Underlying US stock ticker |
133
+ | type | integer | Platform type: `1` = Ondo |
134
+ | multiplier | string | Shares multiplier (see Key Concept above, Notes §6) |
135
+
136
+ ---
137
+
138
+ ## API 2: RWA Meta
139
+
140
+ ### Method: GET
141
+
142
+ **URL**:
143
+ ```
144
+ https://www.binance.com/bapi/defi/v1/public/wallet-direct/buw/wallet/market/token/rwa/meta/ai
145
+ ```
146
+
147
+ **Request Parameters**:
148
+
149
+ | Parameter | Type | Required | Description |
150
+ |-----------------|--------|----------|------------------------------------------------|
151
+ | chainId | string | Yes | Chain ID (e.g. `56` for BSC, `1` for Ethereum) |
152
+ | contractAddress | string | Yes | Token contract address |
153
+
154
+ **Headers**: `Accept-Encoding: identity`
155
+
156
+ **Example**:
157
+ ```bash
158
+ curl 'https://www.binance.com/bapi/defi/v1/public/wallet-direct/buw/wallet/market/token/rwa/meta/ai?chainId=56&contractAddress=<CONTRACT_ADDRESS>' \
159
+ -H 'Accept-Encoding: identity' \
160
+ -H 'User-Agent: binance-web3/1.1 (Skill)'
161
+ ```
162
+
163
+ **Response**:
164
+
165
+ ```json
166
+ {
167
+ "code": "000000",
168
+ "data": {
169
+ "tokenId": "<TOKEN_ID>",
170
+ "name": "<TOKEN_DISPLAY_NAME>",
171
+ "symbol": "<TOKEN_SYMBOL_ON>",
172
+ "ticker": "<UNDERLYING_TICKER>",
173
+ "icon": "/images/web3-data/public/token/logos/<TOKEN_ID>.png",
174
+ "dailyAttestationReports": "/images/web3-data/public/token/ondo/pdf/daily-<DATE>.pdf",
175
+ "monthlyAttestationReports": "/images/web3-data/public/token/ondo/pdf/monthly-<MONTH>.pdf",
176
+ "companyInfo": {
177
+ "companyName": "<COMPANY_NAME_EN>",
178
+ "companyNameZh": "<公司名称>",
179
+ "homepageUrl": "",
180
+ "description": "<COMPANY_DESCRIPTION_EN>",
181
+ "descriptionZh": "<COMPANY_DESCRIPTION_CN>",
182
+ "ceo": "<CEO_NAME>",
183
+ "industry": "<INDUSTRY>",
184
+ "industryKey": "<INDUSTRY_KEY>",
185
+ "conceptsCn": ["概念标签A", "概念标签B", "概念标签C"],
186
+ "conceptsEn": ["Concept Tag A", "Concept Tag B", "Concept Tag C"]
187
+ },
188
+ "decimals": 18
189
+ },
190
+ "success": true
191
+ }
192
+ ```
193
+
194
+ **Response Fields** (`data`):
195
+
196
+ | Field | Type | Description |
197
+ |---------------------------|---------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
198
+ | tokenId | string | Token unique ID |
199
+ | name | string | Full token name (e.g. `<TOKEN_DISPLAY_NAME>`) |
200
+ | symbol | string | Token symbol (e.g. `<TOKEN_SYMBOL_ON>`) |
201
+ | ticker | string | Underlying stock ticker (e.g. `<UNDERLYING_TICKER>`) |
202
+ | icon | string | Icon image **relative path**. To get the full URL, prepend `https://bin.bnbstatic.com` (e.g. `https://bin.bnbstatic.com/images/web3-data/public/token/logos/<TOKEN_ID>.png`) |
203
+ | dailyAttestationReports | string | Daily attestation report **relative path**. Prepend `https://bin.bnbstatic.com` to get the full URL |
204
+ | monthlyAttestationReports | string | Monthly attestation report **relative path**. Prepend `https://bin.bnbstatic.com` to get the full URL |
205
+ | companyInfo | object | Company details (see below) |
206
+ | decimals | integer | Token decimals (typically `18`) |
207
+
208
+ **Company Info Fields** (`data.companyInfo`):
209
+
210
+ | Field | Type | Description |
211
+ |---------------|----------|-----------------------------------------------------------------------|
212
+ | companyName | string | Company name in English |
213
+ | companyNameZh | string | Company name in Chinese |
214
+ | homepageUrl | string | Company homepage URL |
215
+ | description | string | Company description (English) |
216
+ | descriptionZh | string | Company description (Chinese) |
217
+ | ceo | string | CEO name |
218
+ | industry | string | Industry classification |
219
+ | industryKey | string | Industry i18n key |
220
+ | conceptsCn | string[] | Concept/theme tags in Chinese |
221
+ | conceptsEn | string[] | Concept/theme tags in English (e.g. `Concept Tag A`, `Concept Tag B`) |
222
+
223
+ ---
224
+
225
+ ## API 3: Market Status
226
+
227
+ ### Method: GET
228
+
229
+ **URL**:
230
+ ```
231
+ https://www.binance.com/bapi/defi/v1/public/wallet-direct/buw/wallet/market/token/rwa/market/status/ai
232
+ ```
233
+
234
+ **Request Parameters**: None
235
+
236
+ **Headers**: `Accept-Encoding: identity`
237
+
238
+ **Example**:
239
+ ```bash
240
+ curl 'https://www.binance.com/bapi/defi/v1/public/wallet-direct/buw/wallet/market/token/rwa/market/status/ai' \
241
+ -H 'Accept-Encoding: identity' \
242
+ -H 'User-Agent: binance-web3/1.1 (Skill)'
243
+ ```
244
+
245
+ **Response**:
246
+
247
+ ```json
248
+ {
249
+ "code": "000000",
250
+ "data": {
251
+ "openState": false,
252
+ "reasonCode": "MARKET_PAUSED",
253
+ "reasonMsg": "Paused for session transition",
254
+ "nextOpen": "2026-03-23T08:01:00Z",
255
+ "nextClose": "2026-03-23T13:29:00Z",
256
+ "nextOpenTime": 1774252860000,
257
+ "nextCloseTime": 1774272540000
258
+ },
259
+ "success": true
260
+ }
261
+ ```
262
+
263
+ > **Note**: The sample above is captured with `openState=false` (market closed/paused), so `nextOpen` is earlier than `nextClose`.
264
+
265
+ **Response Fields** (`data`):
266
+
267
+ | Field | Type | Description |
268
+ |---------------|--------------|-------------------------------------------------------------------------|
269
+ | openState | boolean | Whether the Ondo market is currently open for trading |
270
+ | reasonCode | string\|null | Reason code if market is not in normal trading state (see Reason Codes) |
271
+ | reasonMsg | string\|null | Human-readable reason message |
272
+ | nextOpen | string | Next market open time from current state (ISO 8601 UTC) |
273
+ | nextClose | string | Next market close time from current state (ISO 8601 UTC) |
274
+ | nextOpenTime | number | Next market open time from current state (Unix timestamp in ms) |
275
+ | nextCloseTime | number | Next market close time from current state (Unix timestamp in ms) |
276
+
277
+ > **Interpretation**: These fields are state-dependent. When `openState=true`, `nextClose` is expected to be earlier than `nextOpen` (market closes before the next open). When `openState=false`, `nextOpen` is expected to be earlier than `nextClose` (market opens before the next close).
278
+
279
+ ---
280
+
281
+ ## API 4: Asset Market Status
282
+
283
+ ### Method: GET
284
+
285
+ **URL**:
286
+ ```
287
+ https://www.binance.com/bapi/defi/v1/public/wallet-direct/buw/wallet/market/token/rwa/asset/market/status/ai
288
+ ```
289
+
290
+ **Request Parameters**:
291
+
292
+ | Parameter | Type | Required | Description |
293
+ |-----------------|--------|----------|------------------------|
294
+ | chainId | string | Yes | Chain ID |
295
+ | contractAddress | string | Yes | Token contract address |
296
+
297
+ **Headers**: `Accept-Encoding: identity`
298
+
299
+ **Example**:
300
+ ```bash
301
+ curl 'https://www.binance.com/bapi/defi/v1/public/wallet-direct/buw/wallet/market/token/rwa/asset/market/status/ai?chainId=56&contractAddress=<CONTRACT_ADDRESS>' \
302
+ -H 'Accept-Encoding: identity' \
303
+ -H 'User-Agent: binance-web3/1.1 (Skill)'
304
+ ```
305
+
306
+ **Response**:
307
+
308
+ ```json
309
+ {
310
+ "code": "000000",
311
+ "data": {
312
+ "openState": false,
313
+ "marketStatus": "closed",
314
+ "reasonCode": "MARKET_CLOSED",
315
+ "reasonMsg": null,
316
+ "nextOpenTime": 1774252860000,
317
+ "nextCloseTime": 1774272540000
318
+ },
319
+ "success": true
320
+ }
321
+ ```
322
+
323
+ **Response Fields** (`data`):
324
+
325
+ | Field | Type | Description |
326
+ |---------------|--------------|---------------------------------------------------------------------------------------|
327
+ | openState | boolean | Whether this specific asset is available for trading |
328
+ | marketStatus | string | Current session: `premarket`, `regular`, `postmarket`, `overnight`, `closed`, `pause` |
329
+ | reasonCode | string | Status reason code (see Reason Codes below) |
330
+ | reasonMsg | string\|null | Human-readable reason message (populated when paused/limited) |
331
+ | nextOpenTime | number | Next open time (Unix timestamp in ms) |
332
+ | nextCloseTime | number | Next close time (Unix timestamp in ms) |
333
+
334
+ ### Reason Codes
335
+
336
+ | reasonCode | Description |
337
+ |----------------------|----------------------------------------------------------------------------|
338
+ | `TRADING` | Normal trading |
339
+ | `MARKET_CLOSED` | Market is closed (outside trading hours) |
340
+ | `MARKET_PAUSED` | Market-wide trading halt |
341
+ | `ASSET_PAUSED` | This specific asset is paused (see Corporate Actions below) |
342
+ | `ASSET_LIMITED` | This specific asset has trading restrictions (see Corporate Actions below) |
343
+ | `UNSUPPORTED` | Asset is not supported |
344
+ | `MARKET_MAINTENANCE` | System maintenance |
345
+
346
+ ### Corporate Actions (when `ASSET_PAUSED` or `ASSET_LIMITED`)
347
+
348
+ When an asset is paused or limited, the `reasonMsg` field indicates the specific corporate action:
349
+
350
+ | reasonCode | reasonMsg | Description |
351
+ |-----------------|--------------------|------------------------------------------------------------|
352
+ | `ASSET_PAUSED` | `cash_dividend` | Cash dividend distribution |
353
+ | `ASSET_PAUSED` | `stock_dividend` | Stock dividend distribution |
354
+ | `ASSET_PAUSED` | `stock_split` | Stock split |
355
+ | `ASSET_PAUSED` | `merger` | Company merger |
356
+ | `ASSET_PAUSED` | `acquisition` | Company acquisition |
357
+ | `ASSET_PAUSED` | `spinoff` | Corporate spinoff |
358
+ | `ASSET_PAUSED` | `maintenance` | Asset-level maintenance |
359
+ | `ASSET_PAUSED` | `corporate action` | Other corporate action |
360
+ | `ASSET_LIMITED` | `earnings` | Earnings release — trading restricted but not fully paused |
361
+
362
+ ---
363
+
364
+ ## API 5: RWA Dynamic V2
365
+
366
+ ### Method: GET
367
+
368
+ **URL**:
369
+ ```
370
+ https://www.binance.com/bapi/defi/v2/public/wallet-direct/buw/wallet/market/token/rwa/dynamic/ai
371
+ ```
372
+
373
+ **Request Parameters**:
374
+
375
+ | Parameter | Type | Required | Description |
376
+ |-----------------|--------|----------|------------------------|
377
+ | chainId | string | Yes | Chain ID |
378
+ | contractAddress | string | Yes | Token contract address |
379
+
380
+ **Headers**: `Accept-Encoding: identity`
381
+
382
+ **Example**:
383
+ ```bash
384
+ curl 'https://www.binance.com/bapi/defi/v2/public/wallet-direct/buw/wallet/market/token/rwa/dynamic/ai?chainId=56&contractAddress=<CONTRACT_ADDRESS>' \
385
+ -H 'Accept-Encoding: identity' \
386
+ -H 'User-Agent: binance-web3/1.1 (Skill)'
387
+ ```
388
+
389
+ **Response**:
390
+
391
+ ```json
392
+ {
393
+ "code": "000000",
394
+ "data": {
395
+ "symbol": "<TOKEN_SYMBOL_ON>",
396
+ "ticker": "<UNDERLYING_TICKER>",
397
+ "tokenInfo": {
398
+ "price": "310.384196924055952519",
399
+ "priceChange24h": "1.09518626611014170",
400
+ "priceChangePct24h": "0.354098021064624509",
401
+ "totalHolders": "1023",
402
+ "sharesMultiplier": "1.001084338309087472",
403
+ "volume24h": "8202859508.959922580629343392",
404
+ "marketCap": "7116321.021286604958613714702150000306622972",
405
+ "fdv": "7116321.021286604958613714702150000306622972",
406
+ "circulatingSupply": "22927.459232171569002788",
407
+ "maxSupply": "22927.459232171569002788"
408
+ },
409
+ "stockInfo": {
410
+ "price": null,
411
+ "priceHigh52w": "328.83",
412
+ "priceLow52w": "140.53",
413
+ "volume": "26429618",
414
+ "averageVolume": "36255295",
415
+ "sharesOutstanding": "5818000000",
416
+ "marketCap": "1805815257704.157531755542",
417
+ "turnoverRate": "0.4543",
418
+ "amplitude": null,
419
+ "priceToEarnings": "29.93",
420
+ "dividendYield": "0.27",
421
+ "priceToBook": null,
422
+ "lastCashAmount": null
423
+ },
424
+ "statusInfo": {
425
+ "openState": null,
426
+ "marketStatus": null,
427
+ "reasonCode": null,
428
+ "reasonMsg": null,
429
+ "nextOpenTime": null,
430
+ "nextCloseTime": null
431
+ },
432
+ "limitInfo": {
433
+ "maxAttestationCount": "1500",
434
+ "maxActiveNotionalValue": "450000"
435
+ }
436
+ },
437
+ "success": true
438
+ }
439
+ ```
440
+
441
+ ### Response Fields
442
+
443
+ **Top-level** (`data`):
444
+
445
+ | Field | Type | Description |
446
+ |------------|--------|------------------------------------------------------|
447
+ | symbol | string | Token symbol (e.g. `<TOKEN_SYMBOL_ON>`) |
448
+ | ticker | string | Underlying stock ticker (e.g. `<UNDERLYING_TICKER>`) |
449
+ | tokenInfo | object | On-chain token data |
450
+ | stockInfo | object | US stock fundamentals |
451
+ | statusInfo | object | Market/asset trading status (same schema as API 4) |
452
+ | limitInfo | object | Order limit information |
453
+
454
+ **Token Info** (`data.tokenInfo`):
455
+
456
+ | Field | Type | Description |
457
+ |-------------------|--------|----------------------------------------------------------------------------------------|
458
+ | price | string | On-chain token price (USD) — per-token, not per-share (see Key Concept above) |
459
+ | priceChange24h | string | 24h price change (USD) |
460
+ | priceChangePct24h | string | 24h price change (%) |
461
+ | totalHolders | string | Number of on-chain holders |
462
+ | sharesMultiplier | string | Same as `multiplier` in API 1 (see Key Concept above, Notes §6) |
463
+ | volume24h | string | ⚠️ **Misleading**: This is the US stock trading volume in USD, NOT on-chain DEX volume |
464
+ | marketCap | string | On-chain market cap (USD) = `circulatingSupply × price` |
465
+ | fdv | string | Fully diluted valuation (USD) |
466
+ | circulatingSupply | string | Circulating supply (token units) |
467
+ | maxSupply | string | Maximum supply (token units) |
468
+
469
+ **Stock Info** (`data.stockInfo`):
470
+
471
+ | Field | Type | Description |
472
+ |-------------------|--------------|----------------------------------------------------------------------------------|
473
+ | price | string\|null | US stock price (USD). May be `null` outside trading hours |
474
+ | priceHigh52w | string | 52-week high price (USD) |
475
+ | priceLow52w | string | 52-week low price (USD) |
476
+ | volume | string | ⚠️ US stock volume in **shares** (not USD). Multiply by `price` to get USD value |
477
+ | averageVolume | string | Average daily volume (shares) |
478
+ | sharesOutstanding | string | Total shares outstanding |
479
+ | marketCap | string | US stock total market cap (USD) |
480
+ | turnoverRate | string | Turnover rate (%) |
481
+ | amplitude | string\|null | Intraday amplitude (%) |
482
+ | priceToEarnings | string | P/E ratio (TTM) |
483
+ | dividendYield | string | Dividend yield (TTM, percentage value: `0.27` means 0.27%) |
484
+ | priceToBook | string\|null | P/B ratio |
485
+ | lastCashAmount | string\|null | Most recent cash dividend amount per share (USD) |
486
+
487
+ **Status Info** (`data.statusInfo`):
488
+
489
+ Same schema as API 4 response. See [Asset Market Status](#api-4-asset-market-status) for field details and reason codes.
490
+
491
+ **Limit Info** (`data.limitInfo`):
492
+
493
+ | Field | Type | Description |
494
+ |------------------------|--------|------------------------------------------------|
495
+ | maxAttestationCount | string | Maximum attestation count for orders |
496
+ | maxActiveNotionalValue | string | Maximum active notional value for orders (USD) |
497
+
498
+ ---
499
+
500
+ ## API 6: Token K-Line
501
+
502
+ ### Method: GET
503
+
504
+ **URL**:
505
+ ```
506
+ https://www.binance.com/bapi/defi/v1/public/wallet-direct/buw/wallet/dex/market/token/kline/ai
507
+ ```
508
+
509
+ **Request Parameters**:
510
+
511
+ | Parameter | Type | Required | Default | Description |
512
+ |-----------------|---------|----------|---------|---------------------------------------------------------|
513
+ | chainId | string | Yes | - | Chain ID (e.g. `56` for BSC, `1` for Ethereum) |
514
+ | contractAddress | string | Yes | - | Token contract address |
515
+ | interval | string | Yes | - | K-Line interval (see Interval Reference) |
516
+ | limit | integer | No | 300 | Number of candles to return (max 300) |
517
+ | startTime | long | No | - | Start timestamp (ms), based on candle open time |
518
+ | endTime | long | No | - | End timestamp (ms), based on candle open time minus 1ms |
519
+
520
+ > **Note on `startTime` / `endTime`**: Both reference the candle's open time. If omitted, returns the latest candles. When both are provided, `endTime` should be the target candle's open time minus 1ms.
521
+
522
+ **Interval Reference**:
523
+
524
+ | Interval | Description |
525
+ |----------|-------------|
526
+ | 1m | 1 minute |
527
+ | 5m | 5 minutes |
528
+ | 15m | 15 minutes |
529
+ | 1h | 1 hour |
530
+ | 4h | 4 hours |
531
+ | 12h | 12 hours |
532
+ | 1d | 1 day |
533
+
534
+ **Headers**: `Accept-Encoding: identity`
535
+
536
+ **Example**:
537
+ ```bash
538
+ curl 'https://www.binance.com/bapi/defi/v1/public/wallet-direct/buw/wallet/dex/market/token/kline/ai?chainId=56&contractAddress=<CONTRACT_ADDRESS>&interval=1d&limit=5' \
539
+ -H 'Accept-Encoding: identity' \
540
+ -H 'User-Agent: binance-web3/1.1 (Skill)'
541
+ ```
542
+
543
+ **Response**:
544
+
545
+ ```json
546
+ {
547
+ "code": "000000",
548
+ "data": {
549
+ "klineInfos": [
550
+ [1773619200000, "302.935406291919976543", "306.960384694362870577", "302.25959298411397863", "305.249336787737745037", "0", 1773705599999],
551
+ [1773705600000, "305.644964527245747627", "311.890874865402466994", "303.302517784917770672", "311.028506552196415779", "0", 1773791999999]
552
+ ],
553
+ "decimals": 5
554
+ },
555
+ "success": true
556
+ }
557
+ ```
558
+
559
+ **Candle Array Format** (each element in `data.klineInfos[]`):
560
+
561
+ | Index | Field | Type | Description |
562
+ |-------|-----------|--------|-----------------------------|
563
+ | 0 | openTime | number | Candle open timestamp (ms) |
564
+ | 1 | open | string | Open price (USD) |
565
+ | 2 | high | string | High price (USD) |
566
+ | 3 | low | string | Low price (USD) |
567
+ | 4 | close | string | Close price (USD) |
568
+ | 5 | - | string | Reserved field |
569
+ | 6 | closeTime | number | Candle close timestamp (ms) |
570
+
571
+ **Response Fields**:
572
+
573
+ | Field | Type | Description |
574
+ |------------|---------|-------------------------------------------|
575
+ | klineInfos | array | Array of candle arrays (see format above) |
576
+ | decimals | integer | Price decimal precision hint |
577
+
578
+ ---
579
+
580
+ ## User Agent Header
581
+
582
+ Include `User-Agent` header with the following string: `binance-web3/1.1 (Skill)`
583
+
584
+ ## Notes
585
+
586
+ 1. **`volume24h` in tokenInfo is misleading**: `tokenInfo.volume24h` from the RWA Dynamic API returns the **US stock daily trading volume in USD**, not the on-chain DEX trading volume. For actual on-chain buy/sell volume, use the Binance on-chain dynamic API (`/market/token/dynamic/info`) with `volume24hBuy` + `volume24hSell` fields instead.
587
+
588
+ 2. **`dividendYield` is a percentage value, not a raw decimal**: A value of `0.27` means 0.27% dividend yield.
589
+
590
+ 3. **Icon and report URLs are relative paths — prepend domain to use**: The API returns relative paths for `icon`, `dailyAttestationReports`, and `monthlyAttestationReports` (e.g. `/images/web3-data/public/token/logos/...`). To construct the full URL, prepend `https://bin.bnbstatic.com`. Example: `/images/web3-data/public/token/logos/<TOKEN_ID>.png` → `https://bin.bnbstatic.com/images/web3-data/public/token/logos/<TOKEN_ID>.png`.
591
+
592
+ 4. **No API key required**: All endpoints are public APIs. No authentication needed.
593
+
594
+ 5. **Multi-chain deployments**: Each supported stock may be deployed on multiple chains (e.g. both Ethereum and BSC). `stockInfo` and `tokenInfo.price` are identical across chains. `tokenInfo.totalHolders` is aggregated cross-chain. `tokenInfo.circulatingSupply` and `tokenInfo.marketCap` are chain-specific.
595
+
596
+ 6. **`multiplier` / `sharesMultiplier` — critical for price comparison**: Each token represents `multiplier` shares of the underlying stock, not exactly 1 share. The multiplier starts at 1.0 and increases over time as cash dividends are reinvested (cumulative dividend adjustment). Some tokens also reflect stock splits (e.g. multiplier = 10.0 means 1 token = 10 shares).
597
+
598
+ **Formula**:
599
+ ```
600
+ referencePrice = tokenInfo.price ÷ sharesMultiplier
601
+ ```
602
+
603
+ > `tokenInfo.price` and `stockInfo.price` come from different sources (on-chain oracle vs stock feed) and update at different frequencies, so a small premium/discount (typically within ±0.1%) is normal.
604
+
605
+ **Common multiplier categories**:
606
+
607
+ | Multiplier | Cause |
608
+ |--------------------|---------------------------------------------------------|
609
+ | Exactly 1.0 | No dividends paid yet, or newly listed |
610
+ | Slightly above 1.0 | Cumulative cash dividend reinvestment (grows over time) |
611
+ | 5.0, 10.0 | Stock split reflected in token structure |
612
+
613
+ > The exact multiplier value changes over time as dividends accumulate. Always read it from the API at query time — never hardcode.