Query address info Skill from Binance#7
Conversation
42d71d6 to
3160caf
Compare
Greptile SummaryThis PR adds a new Key issues found:
Confidence Score: 1/5
Important Files Changed
Sequence DiagramsequenceDiagram
participant User
participant Agent
participant BinanceWeb3 as Binance Web3 API
User->>Agent: "Show token holdings for wallet 0x... on BSC"
Agent->>Agent: Extract address + chainId (56)
Agent->>BinanceWeb3: GET /active-position-list?address=0x...&chainId=56&offset=0
Note over Agent,BinanceWeb3: Headers: clienttype: web, clientversion: 1.2.0
BinanceWeb3-->>Agent: { code: "000000", data: { list: [...], offset: 0 } }
Agent->>Agent: Check if more pages exist (undocumented)
opt More pages available
Agent->>BinanceWeb3: GET /active-position-list?address=0x...&chainId=56&offset=N
BinanceWeb3-->>Agent: Next page of results
end
Agent->>Agent: Format results (price, percentChange24h, remainQty)
Agent-->>User: Formatted portfolio summary
Last reviewed commit: "add Query Address In..." |
| id: query-address-info | ||
| name: Query Address Info | ||
| description: Query on-chain wallet addresses for token balances and positions, including token metadata, price, 24h change, and holding quantity. | ||
| category: Blockchain |
There was a problem hiding this comment.
The category field is set to Blockchain, which is not one of the allowed values. Per CONTRIBUTING.md, valid categories are strictly: productivity, development, communication, writing, research, other. The automated CI checks validate this field and will reject the PR with this value. other is the correct fallback for blockchain/crypto skills.
| category: Blockchain | |
| category: other |
| **Method**: GET | ||
|
|
||
| **URL**: | ||
| `https://web3.binance.com/bapi/defi/v3/public/wallet-direct/buw/wallet/address/pnl/active-position-list` |
There was a problem hiding this comment.
External URL referenced in skill instructions
The skill embeds a full external URL (https://web3.binance.com/...) directly in the instructions body. According to CONTRIBUTING.md, guideline #3 states: "Don't reference external URLs — Skills should be self-contained." This will also fail the automated PR checks.
The PR checklist item "No external URLs referenced in instructions" is incorrectly checked as complete. The URL, example curl command (line 51–55), and any other https:// references need to be replaced with instructional prose describing the endpoint path structure, so the agent can construct the request using knowledge already in the skill without reaching out to an external resource definition.
| # Query Address Info Skill | ||
|
|
||
| ## Overview | ||
|
|
||
| This skill queries any on-chain wallet address for token holdings, supporting: | ||
| - List of all tokens held by a wallet address | ||
| - Current price of each token | ||
| - 24-hour price change percentage | ||
| - Holding quantity |
There was a problem hiding this comment.
Skill contains only API docs — no agent behavioral instructions
Looking at the rest of the skill repository (e.g., skills/ab-test-setup/SKILL.md), skills are written as natural language instructions that tell the AI agent how to behave. This file is purely API reference documentation (endpoint, parameters, response shape) with no instructions on what the agent should actually do.
There is no guidance such as:
- When should this skill activate?
- How should results be presented to the user (table, prose, list)?
- How should the agent handle pagination (when to fetch more pages, when to stop)?
- What should the agent say when the address has no holdings or when the API returns an error?
- How should the agent validate the wallet address format before calling the API?
Without behavioral instructions, an AI agent using this skill won't know how to respond meaningfully to a user request. Please add a natural language instructions section above the API documentation.
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
| ## Supported Chains | ||
|
|
||
| | Chain Name | chainId | | ||
| |------------|---------| | ||
| | BSC | 56 | | ||
| | Base | 8453 | | ||
| | Solana | CT_501 | |
There was a problem hiding this comment.
Solana address format is undocumented and incompatible with the example request
The skill supports Solana (CT_501) but provides no guidance on its address format. Solana wallet addresses are base58-encoded public keys (e.g., 5YNmS1R9nNSCDzb5a7mMJ1dwK9uHeAAF4CmPEwKgVWr8), which are entirely different from the EVM 0x-prefixed hex addresses shown in all the examples. An agent following the examples would incorrectly format a Solana address query.
Please add a note clarifying the expected address format for Solana versus EVM chains, and provide a Solana-specific example request so agents can handle it correctly.
| | address | string | Yes | Wallet address, e.g., `0x0000000000000000000000000000000000000001` | | ||
| | chainId | string | Yes | Chain ID, e.g., `56` (BSC), `8453` (Base) | | ||
| | offset | number | No | Pagination offset, default 0 | |
There was a problem hiding this comment.
Missing
limit parameter and pagination termination condition
The offset parameter is documented but there is no limit parameter listed, and the response schema contains no total or hasMore field to signal when to stop paginating. An agent asked to retrieve all holdings would have no way to determine when the last page has been reached.
Consider:
- Documenting any
limitparameter if it exists. - Adding a field to the response table (e.g.,
total,hasNextPage) that indicates the total count or whether more pages are available. - Adding a note in the instructions on the recommended pagination strategy (e.g., "stop when
listlength is less than the page size").
New Skill Contribution
Skill Info
Checklist
Testing
Describe how you tested this skill:
Notes
Any additional context or notes for reviewers.