references/cli.md
# binance-leaderboard — CLI Reference
Complete reference for all `baw leaderboard` subcommands.
**Invocation pattern**: `baw leaderboard <subcommand> [options] --json`
**Auth**: `query` requires no auth. All other subcommands (alpha-radar, preset, alpha-radar-config) require `agentSessionId` (set by `baw` CLI automatically).
---
## `leaderboard query` — Leaderboard Query
Public endpoint, no auth required.
```bash
baw leaderboard query -c 56 --period 7d --tag ALL --json
baw leaderboard query -c CT_501 --period 30d --tag KOL \
--sort-by 20 --page 0 --size 20 --json
```
### Parameters
| Param | Type | Required | Default | Description |
|-------|------|----------|---------|-------------|
| `-c, --chain-id` | string | yes | — | `56` (BSC) · `CT_501` (Solana) · `8453` (Base) · `1` (ETH) |
| `-p, --period` | enum | no | `30d` | `7d` / `30d` / `90d` |
| `-t, --tag` | enum | no | `ALL` | `ALL` / `KOL` / `MPC` |
| `--sort-by` | int | no | `0` | `0`=PnL · `20`=Win Rate · `30`=Total Volume · `50`=Trade Count · `60`=Recent Activity · `70`=Profit Rate · `80`=Token Count |
| `--order-by` | int | no | `0` | `0`/`2`=Descending · `1`=Ascending |
| `--page` | int | no | `0` | Page number (**from 0**) |
| `--size` | int | no | `20` | Page size (**max 20**) |
### Return Fields
| Field | Type | Description |
|-------|------|-------------|
| `address` | string | Wallet address |
| `addressLogo` | string | Address avatar URL |
| `addressLabel` | string | Address label (KOL / Smart Money etc.) |
| `addressTwitterUrl` | string | Twitter profile URL |
| `balance` | string | Current balance |
| `tags` | string[] | Address tags (smart money, kol, etc.) |
| `realizedPnl` | string | Realized PnL (USD) |
| `realizedPnlPercent` | string | Realized PnL percentage |
| `dailyPNL` | array | Daily PnL list: `[{dt: "yyyy-MM-dd", realizedPnl: ...}]` |
| `winRate` | number | Win rate (0-100) |
| `totalVolume` | string | Total trading volume (USD) |
| `buyVolume` | string | Buy volume (USD) |
| `sellVolume` | string | Sell volume (USD) |
| `avgBuyVolume` | string | Average buy volume (USD) |
| `totalTxCnt` | number | Total transaction count |
| `buyTxCnt` | number | Buy transaction count |
| `sellTxCnt` | number | Sell transaction count |
| `totalTradedTokens` | number | Number of distinct tokens traded |
| `tokenDistribution` | object | Token PnL distribution: `{gt500Cnt, between0And500Cnt, between0AndNegative50Cnt, ltNegative50Cnt}` |
| `lastActivity` | number | Last activity timestamp (ms) |
| `genericAddressTagList` | array | Generic address tags |
| `topEarningTokens` | array | Top earning tokens: `[{tokenAddress, tokenSymbol, tokenUrl, realizedPnl, profitRate}]` |
### Pagination
Response: `{ data: [...], current: pageNo, size: pageSize, pages: totalPages }`. `pageNo` starts from 0. `pageSize` max is 20.
---
## `leaderboard analyze` — Single Address Analysis
Evaluates a single wallet address using the 6-dimension scoring model + AI overlay.
```bash
baw leaderboard analyze -c 56 -a 0xabc... --json
```
### Parameters
| Param | Type | Required | Default | Description |
|-------|------|----------|---------|-------------|
| `-c, --chain-id` | string | yes | — | Chain ID |
| `-a, --address` | string | yes | — | Wallet address to analyze |
| `-p, --period` | enum | no | `30d` | `7d` / `30d` / `90d` |
### Flow
1. Query leaderboard top 250 entries (internally calls `query` with appropriate pagination)
2. Reverse-lookup the target address in the results
3. If found: compute 6-dimension scores + AI overlay → output rating
4. If not found: return "250 beyond top" (beyond top 250)
### Return Fields
| Field | Type | Description |
|-------|------|-------------|
| `address` | string | Analyzed address |
| `found` | boolean | Whether address was in top 250 |
| `scores` | object | Per-dimension scores: `{winrate, stability, drawdown, tags, pnl, follow_friendly}` |
| `totalScore` | number | Sum of 6 dimensions (0-100) |
| `archetype` | string | AI archetype: `sniper` / `swing` / `accumulator` / `farmer` / `mixed` |
| `behaviorFlags` | string[] | AI behavior flags |
| `aiAdjustment` | number | AI adjustment (±10) |
| `aiReason` | string | AI adjustment reason (required for audit) |
| `finalScore` | number | `totalScore + aiAdjustment` |
| `rating` | string | `⭐⭐⭐` / `⭐⭐` / `⭐` / `❌` |
### Rating Thresholds
| Rating | Score |
|--------|-------|
| ⭐⭐⭐ | ≥ 80 |
| ⭐⭐ | ≥ 65 |
| ⭐ | ≥ 50 |
| ❌ | < 50 |
Full scoring details: [`scoring.md`](scoring.md)
---
## `leaderboard alpha-radar` — Gem Hunter Query
Private endpoint, requires `agentSessionId`. Finds wallets that hold specific tokens.
```bash
baw leaderboard alpha-radar -c 56 \
-t 0xtoken1,0xtoken2 \
-m 1 --json
```
### Parameters
| Param | Type | Required | Description |
|-------|------|----------|-------------|
| `-c, --chain-id` | string | yes | Chain ID |
| `-t, --tokens` | string | yes | Comma-separated token addresses |
| `-m, --match-count` | int | yes | Minimum match count (≥ 1) |
| `-p, --period` | string | no | `7d` / `30d` / `90d` (default: `30d`) |
| `--page` | int | no | Page number, from 0 (default: `0`) |
| `--size` | int | no | Page size, max 20 (default: `20`) |
### Return Fields
Same fields as leaderboard query, but `topEarningTokens` replaced by:
| Field | Type | Description |
|-------|------|-------------|
| `marchedTokens` | array | Matched tokens from the query list. Fields: `[{tokenAddress, tokenSymbol, tokenUrl, realizedPnl, profitRate}]` |
**Note**: The field is spelled `marchedTokens` (not "matched") in the CLI output.
---
## `leaderboard preset save` — Save Preset Filters
Private endpoint. Saves or clears preset filter conditions.
```bash
# Save presets (note: PNL fields use uppercase PNLMin/PNLMax, others are camelCase)
baw leaderboard preset save \
--config '[{"name":"MyPreset","period":"7d","PNLMin":10000,"winRateMin":50,"volumeMin":10000}]' --json
# Clear all presets (pass empty/null)
baw leaderboard preset save --config '[]' --json
```
### Parameters
| Param | Type | Required | Description |
|-------|------|----------|-------------|
| `--config` | array | yes | Preset items (JSON array). `null` or empty = clear all |
### Preset Fields
| Field | Type | Description |
|-------|------|-------------|
| `name` | string | Preset name |
| `period` | string | `7d` / `30d` / `90d` |
| `PNLMin` / `PNLMax` | number | PnL range (USD) |
| `winRateMin` / `winRateMax` | number | Win rate range (0-100) |
| `txMin` / `txMax` | number | Trade count range |
| `volumeMin` / `volumeMax` | number | Volume range (USD) |
---
## `leaderboard preset list` — List Preset Filters
Private endpoint. Returns all saved presets.
```bash
baw leaderboard preset list --json
```
### Parameters
None.
### Return Fields
Returns an array of preset objects (same fields as save).
---
## `leaderboard alpha-radar-config save` — Save Gem Hunter Config
Private endpoint. Saves or clears Gem Hunter configs.
```bash
baw leaderboard alpha-radar-config save -c 56 \
--config '[{"uuid":"u1","name":"MyRadar","matchTokenCount":2,
"tokenAddressList":[{"tokenAddress":"0xabc","tokenSymbol":"USDT"}]}]' --json
# Clear all configs
baw leaderboard alpha-radar-config save -c 56 --config '[]' --json
```
### Parameters
| Param | Type | Required | Description |
|-------|------|----------|-------------|
| `-c, --chain-id` | string | yes | Chain ID |
| `--config` | array | yes | Config items (JSON array). `null` or empty = clear all |
### Config Fields
| Field | Type | Description |
|-------|------|-------------|
| `uuid` | string | Config UUID |
| `name` | string | Config name |
| `matchTokenCount` | int | Minimum match count |
| `tokenAddressList` | array | Token list (objects, NOT strings) |
### Token Fields
| Field | Type | Description |
|-------|------|-------------|
| `tokenAddress` | string | Token contract address (required) |
| `tokenSymbol` | string | Token symbol (optional) |
| `tokenUrl` | string | Token icon URL (optional) |
---
## `leaderboard alpha-radar-config list` — List Gem Hunter Config
Private endpoint. Returns all saved configs for a chain.
```bash
baw leaderboard alpha-radar-config list -c 56 --json
```
### Parameters
| Param | Type | Required | Description |
|-------|------|----------|-------------|
| `-c, --chain-id` | string | yes | Chain ID |
### Return Fields
Returns an array of config objects (same fields as save).
references/scoring.md
# Leaderboard Scoring Model
6-dimension scoring model for wallet address analysis, plus AI archetype overlay.
---
## Overview
```
totalScore = winrate(25) + stability(20) + drawdown(20) + tags(15) + pnl(10) + follow_friendly(10) = 100
finalScore = totalScore + ai_adjustment(±10)
```
Rating: ⭐⭐⭐ ≥ 80 · ⭐⭐ ≥ 65 · ⭐ ≥ 50 · ❌ < 50
---
## Dimension 1: Win Rate (25 points)
| Win Rate | Score |
|----------|-------|
| ≥ 70% | 25 |
| 60-69% | 20 |
| 50-59% | 15 |
| 40-49% | 8 |
| < 40% | 0 |
Source field: `winRate` (0-100).
---
## Dimension 2: Stability (20 points)
Based on `dailyPNL[]` array — daily profit distribution + concentration penalty.
**Scoring logic**:
1. Compute daily PnL values from `dailyPNL[]` (field: `realizedPnl` per day)
2. Base score: consistency of positive days (positive days / total days × 20)
3. Concentration penalty: if single-day PnL > 50% of total, penalize proportionally
**Note**: These ranges are guidance for AI-judgment, not deterministic formulas. The backend does not expose the exact penalty formula. Use the ranges as scoring anchors and adjust based on the overall profit distribution shape.
| Stability Profile | Score |
|-------------------|-------|
| Consistent daily profits, no single-day dominance | 18-20 |
| Mostly consistent, some concentration | 12-17 |
| Inconsistent or high concentration | 6-11 |
| Erratic | 0-5 |
---
## Dimension 3: Drawdown (20 points)
Based on `tokenDistribution{}` — four buckets of token PnL:
| Bucket | Description |
|--------|-------------|
| `gt500Cnt` | Tokens with PnL > $500 |
| `between0And500Cnt` | Tokens with PnL $0-$500 |
| `between0AndNegative50Cnt` | Tokens with PnL -$50 to $0 |
| `ltNegative50Cnt` | Tokens with PnL < -$50 |
**Scoring logic**:
- Reward `gt500Cnt` and `between0And500Cnt` (profitable tokens)
- Penalize `ltNegative50Cnt` (heavy losses)
- Rug penalty: if `ltNegative50Cnt` > 30% of total tokens, additional penalty
**Note**: Like Stability, these ranges are AI-judgment guidance. The exact rug penalty formula is not exposed by the backend. Use the bucket distribution to assess overall drawdown health.
| Drawdown Profile | Score |
|------------------|-------|
| Minimal losses, mostly profitable tokens | 16-20 |
| Some losses but manageable | 10-15 |
| Significant losses | 4-9 |
| Heavy losses / rug pattern | 0-3 |
---
## Dimension 4: Tags (15 points)
Based on `tags[]` and `genericAddressTagList[]`.
| Tag | Score |
|-----|-------|
| Smart Money | +15 |
| KOL | +10 |
| MPC | +5 |
| No notable tags | 0 |
**Stacking rule**: If multiple tags present, take the highest single tag score (do not stack).
---
## Dimension 5: PnL (10 points)
Based on `realizedPnl` (USD).
| PnL Range | Score |
|-----------|-------|
| ≥ $100K | 10 |
| $10K-$100K | 7 |
| $1K-$10K | 4 |
| $0-$1K | 2 |
| < $0 (loss) | 0 |
---
## Dimension 6: Follow-Friendly (10 points)
Based on `avgBuyVolume` — the "sweet spot" for copy-trading.
| Avg Buy Volume | Score | Rationale |
|----------------|-------|-----------|
| $5K-$50K | 10 | Large enough to matter, small enough to follow |
| $1K-$5K | 7 | Meaningful but small |
| $50K-$100K | 5 | Too large for most followers |
| > $100K | 3 | Whale — hard to follow |
| < $1K | 2 | Too small to be meaningful |
---
## AI Overlay (±10)
Applied after the 6-dimension base score.
### Archetype Classification
| Archetype | Description |
|-----------|-------------|
| `sniper` | High-frequency, small tickets, short holding periods |
| `swing` | Medium-frequency, medium holding periods |
| `accumulator` | Gradual position building over time |
| `farmer` | Airdrop/liquidity farming patterns |
| `mixed` | No dominant pattern |
### Behavior Flags
Detected patterns that inform the AI adjustment:
- `High Frequency Small Amount` — high frequency, small amounts
- `Nocturnal Active` — predominantly nocturnal trading
- `Concentrated Building` — concentrated position building
- `Round-Trip` — rapid round-trip trades
- `Long Holding` — long holding periods
- `Multi-Chain` — active on multiple chains
### AI Adjustment
| Adjustment | Condition |
|------------|-----------|
| +5 to +10 | Consistent archetype with clear edge (e.g., sniper with consistently high win rate) |
| -5 to -10 | Red flags (e.g., bot-like patterns, wash trading indicators) |
| 0 | Neutral or ambiguous |
**Required**: `aiReason` must be filled for audit trail whenever adjustment ≠ 0.
---
## Rating Thresholds
| Rating | finalScore | Meaning |
|--------|------------|---------|
| ⭐⭐⭐ | ≥ 80 | Excellent — strong track record, worth following |
| ⭐⭐ | ≥ 65 | Good — above average, consider following |
| ⭐ | ≥ 50 | Average — proceed with caution |
| ❌ | < 50 | Poor — not recommended |
---
## Single Address Analyze Flow
1. **Query top N**: Internally call `leaderboard query` with pagination to fetch the top N entries for the specified chain + period. Default N=1000, configurable via `--top-n` (max 5000).
2. **Reverse lookup**: Search for the target `address` in the results.
3. **If found**: Compute 6-dimension scores from the record fields → apply AI overlay → output `finalScore` + `rating`.
4. **If not found**: Return "N beyond top" (beyond top N). Long-tail wallets can only be analyzed from already-imported groups — use `binance-wallet-tracker` skill's `address list` to check if the address is tracked locally.
### Limitation & Guidance
- Default scans top **1000** entries. If the target address is not found, inform the user: "Address not in top 1000. To expand search range, use `--top-n 5000` to fetch more data, or check on-chain data in `binance-wallet-tracker`."
- The backend API supports arbitrary pagination (`pageSize` max 20, `pageNo` from 0). The `--top-n` flag controls how many entries to scan.
- Known backend bug: page 0 and page 1 return identical data. The CLI automatically deduplicates.
SKILL.md
---
name: binance-leaderboard
description: |
On-chain wallet leaderboard and Gem Hunter analysis on Binance Web3. Query top trader
rankings by PnL, win rate, volume, trade count, or token count across BSC/Solana/Base/ETH.
Analyze individual wallet addresses with a 6-dimension scoring model (winrate/stability/drawdown/
tags/pnl/follow_friendly) plus AI archetype overlay. Query Gem Hunter to find wallets holding
specific tokens. Save and load preset filter conditions and Gem Hunter configs.
Trigger whenever the user mentions leaderboard, top traders, wallet analysis,
Address Analysis, AddressScore, Gem Hunter, or wants to evaluate a wallet's trading quality — even if they
don't say "leaderboard" explicitly.
metadata:
author: binance-web3-team
version: "1.1"
openclaw:
requires:
bins:
- baw
install:
- kind: node
package: '@binance/agentic-wallet'
bins: [baw]
label: Install Binance Agentic Wallet CLI (npm)
---
# Binance Leaderboard Skill
On-chain wallet leaderboard ranking and address analysis. Query top traders by PnL, win rate, and more. Evaluate wallet quality with a 6-dimension scoring model.
## Prerequisites
This skill requires the `baw` CLI (`@binance/agentic-wallet` npm package). If `baw` is not found:
```bash
npm install -g @binance/agentic-wallet
```
Verify: `baw --version` should print `1.6.2` or higher. If installation fails or the user doesn't have Node.js, inform them that Node.js >= 18 is required.
## When to Use
| User intent | Command |
|-------------|---------|
| Query top traders by PnL/win rate/volume | `baw leaderboard query` |
| Analyze a single wallet address (6-dim score + AI archetype) | `baw leaderboard analyze` |
| Find wallets holding specific tokens (Gem Hunter) | `baw leaderboard alpha-radar` |
| Save/load preset filter conditions | `baw leaderboard preset save/list` |
| Save/load Gem Hunter configs | `baw leaderboard alpha-radar-config save/list` |
## Supported Chains
| Chain | chainId |
|-------|---------|
| BSC | `56` |
| Solana | `CT_501` |
| Base | `8453` |
| Ethereum | `1` |
## Command Tree
```
baw leaderboard
query # Leaderboard query (Public, no auth)
analyze # Single address analysis (6-dim score + AI overlay)
alpha-radar # Gem Hunter query (Private, agentSessionId)
preset
save # Save preset filters (Private)
list # List preset filters (Private)
alpha-radar-config
save # Save Gem Hunter config (Private)
list # List Gem Hunter config (Private)
```
All commands support `--json` for structured output.
## Leaderboard Query
```bash
# Basic query — top 20 by PnL on BSC, 7d period
baw leaderboard query -c 56 -p 7d -t ALL --json
# Sort by win rate, KOL tag only
baw leaderboard query -c 56 -p 30d -t KOL --sort-by 20 --json
# Pagination (page from 0, size max 20)
baw leaderboard query -c 56 -p 7d --page 0 --size 20 --json
```
**Public endpoint** — no auth required. Returns per-address PnL, win rate, volume, trade count, token distribution, daily PNL, and top earning tokens.
Key query parameters: `-c/--chain-id` (required), `-p/--period` (7d/30d/90d), `-t/--tag` (ALL/KOL/MPC), `--sort-by` (0=PnL · 20=Win Rate · 30=Total Volume · 50=Trade Count · 60=Recent Activity · 70=Profit Rate · 80=Token Count), `--order-by` (0/2=Descending · 1=Ascending), `--page` (from 0), `--size` (max 20).
Full parameter and return field reference: [`references/cli.md`](references/cli.md)
## Single Address Analyze
```bash
# Analyze a wallet address — 6-dim scoring + AI archetype
# Default scans top 1000 entries
baw leaderboard analyze -c 56 -a 0xabc... --json
# Scan more entries (up to 5000) for long-tail addresses
baw leaderboard analyze -c 56 -a 0xabc... --top-n 5000 --json
```
Evaluates the address across 6 dimensions (winrate 25 + stability 20 + drawdown 20 + tags 15 + pnl 10 + follow_friendly 10 = 100), then applies an AI overlay (archetype + behavior_flags + ai_adjustment ±10).
**Flow**: Query leaderboard top 1000 (configurable via `--top-n`) → reverse-lookup the target address → compute scores → apply AI overlay → output rating.
**Rating**: ⭐⭐⭐ ≥ 80 · ⭐⭐ ≥ 65 · ⭐ ≥ 50 · ❌ < 50
If the address is not in the top N (default 1000), returns "N beyond top". Use `--top-n` to increase scan range up to 5000.
Full scoring model details: [`references/scoring.md`](references/scoring.md)
## Gem Hunter
```bash
# Find wallets holding specific tokens
baw leaderboard alpha-radar -c 56 \
-t 0xtoken1,0xtoken2 \
-m 1 --json
```
**Private endpoint** — requires `agentSessionId`. Extra required params: `-t/--tokens` (comma-separated token addresses), `-m/--match-count` (≥ 1). Supports `-p/--period`, `--page`, `--size` like query.
Returns records with the same fields as leaderboard query, but `topEarningTokens` replaced by `marchedTokens` (matched tokens).
**Note**: The field is spelled `marchedTokens` (not "matched") in the CLI output.
## Preset & Gem Hunter Config
```bash
# Save preset filter conditions (pass null/empty to clear all)
baw leaderboard preset save --config '[{"name":"MyPreset","period":"7d","winRateMin":50}]' --json
# List saved presets
baw leaderboard preset list --json
# Save Gem Hunter config (pass null/empty to clear)
baw leaderboard alpha-radar-config save -c 56 \
--config '[{"uuid":"u1","name":"MyRadar","matchTokenCount":2,"tokenAddressList":[{"tokenAddress":"0xabc"}]}]' --json
# List saved configs
baw leaderboard alpha-radar-config list -c 56 --json
```
## Core Rules
### Scoring Model Overview
6-dimension model (total 100) + AI overlay (±10). Dimensions: winrate (25), stability (20), drawdown (20), tags (15), pnl (10), follow_friendly (10). Full tiered scoring tables and AI overlay rules: [`references/scoring.md`](references/scoring.md).
### Top-N Reverse Lookup
`analyze` queries the leaderboard's top 1000 entries (configurable via `--top-n`, max 5000) and reverse-looks-up the target address. If not found, returns "N beyond top" — inform the user they can increase `--top-n` or use `binance-wallet-tracker`'s address list for long-tail wallets.
### Preset & Config Clearing
Passing `null` or empty array to `preset save` or `alpha-radar-config save` clears all saved items.
### Cross-Skill Scenarios
Some scenarios require both leaderboard and wallet-tracker skills:
- **evaluate follow list**: Use `binance-wallet-tracker`'s `tracker follow` to get the user's followed addresses, then `leaderboard analyze` each one.
- **leaderboard diff**: Query leaderboard top N, then diff against `binance-wallet-tracker`'s `address list` to find untracked wallets.
- **batch import**: Query leaderboard with filters → output address list → feed to `binance-wallet-tracker`'s `address batch` command.
### Write-Back Confirmation
After preset/config save operations, re-fetch via `list` to confirm the operation succeeded — don't assume success from the API response alone. If readback shows the saved data is missing, tell the user "Save may not have taken effect, please try again later" — never mention backend bugs or silent failures.
### User-Facing Presentation
This skill serves end users, not developers. Internal field names, error codes, and CLI internals must never appear in user-facing output.
**1. Term Mapping (internal → user-facing)**
| Internal value | User-facing term | Notes |
|----------------|-------------------|-------|
| `archetype: sniper` | Sniper | |
| `archetype: swing` | Swing Trader | |
| `archetype: accumulator` | Accumulator | |
| `archetype: farmer` | Farmer | |
| `archetype: mixed` | Mixed | |
| `sort-by: 0` | Sort by PnL | |
| `sort-by: 20` | Sort by Win Rate | |
| `sort-by: 30` | Sort by Total Volume | |
| `sort-by: 50` | Sort by Trade Count | |
| `sort-by: 60` | Sort by Recent Activity | |
| `sort-by: 70` | Sort by Profit Rate | |
| `sort-by: 80` | Sort by Token Count | |
| `address` (in display) | omit | Don't show raw address unless user asks; use `{addressLabel}` |
| `finalScore` | Score | Don't show the formula `totalScore + aiAdjustment` |
Raw enum values (`sniper`, `swing`, etc.) may appear in CLI syntax examples and internal lookup tables, but never in user-facing replies.
**2. Never expose internal identifiers**
- `groupId`, `displayOrder` — internal IDs, never shown to users
- Error codes (`70001001`, etc.) — translate to natural-language messages only
- Backend behavior details (e.g. preset save returning `data: true` without persisting) — never mention "backend bug" or "silent failure"
**3. Display template hygiene**
Use user-facing terms in all output. The `archetype` field should be translated to its Chinese term (Sniper, Swing Trader, etc.) — never show the raw English enum value. Score should be shown as a number, not as a formula.
## Error Codes
Error codes are for internal lookup only — never show numeric codes or internal names to users. Translate to natural-language messages.
| Code | Internal Name | User-Facing Message |
|------|---------------|---------------------|
| 70001001 | TRACKER_API_ERROR | Query failed, please try again later |
| 70004001 | TRACKER_LEADERBOARD_EMPTY | Leaderboard data is empty |
| 70004002 | TRACKER_ADDRESS_NOT_RANKED | Address not ranked (beyond top 250) |
## Display Templates
**Leaderboard entry**:
```
{addressLabel} | PnL: {realizedPnl} ({realizedPnlPercent}%) | Win Rate: {winRate}% | Trades: {totalTxCnt} | Tokens: {totalTradedTokens}
```
**Address analysis rating**:
```
📊 {addressLabel} Address Analysis
Rating: ⭐⭐⭐ (85/100)
Trading Style: Sniper
Behavior Patterns: High Frequency Small Amount, Nocturnal Active
Dimension Scores:
Win Rate: 22/25 | Stability: 18/20 | Drawdown: 16/20
Tags: 15/15 | PnL: 8/10 | Trackability: 6/10
AI Adjustment: +5 (consistent trading style, stable pattern)
```
## Full CLI Reference
- [`references/cli.md`](references/cli.md) — All commands with parameter tables, return field tables, and examples
- [`references/scoring.md`](references/scoring.md) — 6-dimension scoring model, AI overlay, rating standards