Skill: tiennv3/solscan-market-by-solscan (version 1.0.0)

--- name: solscan-market description: > Use this skill to query Solana blockchain data via the Solscan Pro API. Triggers: look up wallet address, check token price, analyze NFT collection, inspect transaction, explore DeFi activities, get account metadata/label/tags, fetch block info, monitor API usage, search token by keyword. version: 2.0.0 license: MIT --- # Solscan Pro Skill Empowers AI agents to retrieve professional-grade Solana on-chain data across accounts, tokens, NFTs, transactions, blocks, markets, and programs. ## When to Use This Skill - User asks about a Solana wallet address, balance, portfolio, or stake - User wants token price, holders, markets, or trending tokens - User needs to inspect a transaction signature or decode instructions - User asks about NFT collections, items, or recent NFT activity - User wants DeFi activity, transfer history, or reward exports - User wants to analyze a program's on-chain statistics, transaction metrics, or user activity - User needs to check popular DeFi platforms or view API usage ## Authentication All requests require an API key in the HTTP header: ```http [REDACTED_SECRET] ``` Base URL: `https://pro-api.solscan.io/v2.0` --- ## Tools ### Tool 1 — Direct API CLI (Precise Data) **Use when**: you need exact, structured on-chain data for a specific address, signature, block, or mint. **Syntax**: `python3 scripts/solscan.py <resource> <action> [--param value]` ### Tool 2 — MCP Natural Language Tools **Use when**: answering general exploratory questions or when the user does not provide a specific address. Available MCP tools: - `search_transaction_by_signature` — look up a transaction by its signature - `get_account_balance` — retrieve SOL balance for a wallet - `get_token_metadata` — get name, symbol, decimals for a token mint --- ## API Reference ### Account | Action | Key Params | Returns | |---|---|---| | `account detail` | `--address` | Lamports, owner, executable flag | | `account data-decoded` | `--address` | Decoded account data | | `account metadata` | `--address` | Label, icon, tags, domain, funder | | `account metadata-multi` | `--addresses` | Batch metadata (comma-separated) | | `account transfer` | `--address [filters...]` | SPL + SOL transfer history (supports activity-type, token, flow, time range filters) | | `account defi` | `--address [filters...]` | DeFi protocol interactions (activity-type, from, platform, source, token, time range) | | `account balance-change` | `--address [filters...]` | Historical balance changes (token, flow, amount, time range, remove-spam) | | `account transactions` | `--address [--before] [--limit]` | Recent transactions list (cursor-based pagination) | | `account portfolio` | `--address [--exclude-low-score-tokens]` | Token holdings with USD value | | `account tokens` | `--address --type [--page] [--page-size] [--hide-zero]` | Associated token/NFT accounts (page-size: 10/20/30/40) | | `account stake` | `--address [--page] [--page-size] [--sort-by] [--sort-order]` | Active stake accounts (page-size: 10/20/30/40) | | `account reward-export` | `--address [--time-from] [--time-to]` | Staking reward history CSV (max 5000 items, max 1 req/min) | | `account transfer-export` | `--address [filters...]` | Transfer history CSV (max 5000 items, max 1 req/min) | | `account leaderboard` | `[--sort-by] [--sort-order] [--page] [--page-size]` | Top accounts by activity | | `account defi-export` | `--address [filters...]` | DeFi activity CSV (max 5000 items, max 1 req/min) | **`account metadata` response fields:** > `account_address`, `account_label`, `account_icon`, `account_tags`, `account_type`, `account_domain`, `funded_by`, `tx_hash`, `block_time` **`account transfer` filter options:** > - `--activity-type`: Transfer type filter (comma-separated). Options: ACTIVITY_SPL_TRANSFER, ACTIVITY_SPL_BURN, ACTIVITY_SPL_MINT, ACTIVITY_SPL_CREATE_ACCOUNT, ACTIVITY_SPL_CLOSE_ACCOUNT, ACTIVITY_SPL_TOKEN_WITHDRAW_STAKE, ACTIVITY_SPL_TOKEN_SPLIT_STAKE, ACTIVITY_SPL_TOKEN_MERGE_STAKE, ACTIVITY_SPL_VOTE_WITHDRAW, ACTIVITY_SPL_SET_OWNER_AUTHORITY > - `--token-account`: Filter transfers for a specific token account in the wallet > - `--from`: Filter by source address(es) (max 5, comma-separated) > - `--exclude-from`: Exclude transfers from address(es) (max 5, comma-separated) > - `--to`: Filter by recipient address(es) (max 5, comma-separated) > - `--exclude-to`: Exclude transfers to address(es) (max 5, comma-separated) > - `--token`: Filter by token address(es) (max 5, comma-separated). Use [REDACTED_SECRET] for native SOL > - `--amount`: Amount range filter (min max) > - `--value`: USD value range filter (min max) > - `--from-time`, `--to-time`: Unix timestamp range filter > - `--exclude-amount-zero`: Exclude transfers with zero amount (boolean) > - `--flow`: Transfer direction: in|out > - `--page-size`: 10, 20, 30, 40, 60, 100 (default: 10) > - `--sort-order`: Sort order: asc|desc (default: desc) > > **Deprecated parameters**: `sort_by`, `block_time` (use `from_time`/`to_time` instead) **`account defi` filter options:** > - `--activity-type`: Activity type filter (comma-separated). Options: ACTIVITY_TOKEN_SWAP, ACTIVITY_AGG_TOKEN_SWAP, ACTIVITY_TOKEN_ADD_LIQ, ACTIVITY_TOKEN_REMOVE_LIQ, ACTIVITY_POOL_CREATE, ACTIVITY_SPL_TOKEN_STAKE, ACTIVITY_LST_STAKE, ACTIVITY_SPL_TOKEN_UNSTAKE, ACTIVITY_LST_UNSTAKE, ACTIVITY_TOKEN_DEPOSIT_VAULT, ACTIVITY_TOKEN_WITHDRAW_VAULT, ACTIVITY_SPL_INIT_MINT, ACTIVITY_ORDERBOOK_ORDER_PLACE, ACTIVITY_BORROWING, ACTIVITY_REPAY_BORROWING, ACTIVITY_LIQUIDATE_BORROWING, ACTIVITY_BRIDGE_ORDER_IN, ACTIVITY_BRIDGE_ORDER_OUT > - `--from`: Filter activities from a specific address > - `--platform`: Filter by platform address(es) (comma-separated, max 5) > - `--source`: Filter by source address(es) (comma-separated, max 5) > - `--token`: Filter by token address > - `--from-time`, `--to-time`: Unix timestamp range filter > - `--page-size`: 10, 20, 30, 40, 60, 100 (default: 10) > - `--sort-by`: Sort field (default: block_time, options: block_time) > - `--sort-order`: Sort order: asc|desc (default: desc) > > **Deprecated parameters**: `block_time` (use `from_time`/`to_time` instead) **`account balance-change` filter options:** > - `--token-account`: Filter by specific token account > - `--token`: Filter by token address > - `--amount`: Amount range (min max) > - `--flow`: in|out > - `--remove-spam`: true|false > - `--from-time`, `--to-time`: Unix timestamp range > - `--page-size`: 10, 20, 30, 40, 60, 100 (default: 10) > - `--sort-by`: Sort field (default: block_time, options: block_time) > - `--sort-order`: Sort order: asc|desc (default: desc) > > **Deprecated parameters**: `block_time` (use `from_time`/`to_time` instead) **`account transactions` pagination:** > - Uses cursor-based pagination with `--before` (transaction signature) > - `--limit`: 10, 20, 30, 40 (default: 10) > - No page/page_size parameters **`account stake` options:** > - `--sort-by`: active_stake|delegated_stake (default: active_stake) > - `--sort-order`: asc|desc > - `--page-size`: 10, 20, 30, 40 (default: 10) **`account reward-export` parameters:** > - `--time-from`: Start time (Unix timestamp in seconds, default: 1 month before time-to) > - `--time-to`: End time (Unix timestamp in seconds, default: current time) **`account transfer-export` filter options:** > - `--activity-type`: Transfer type filter (comma-separated). Options: ACTIVITY_SPL_TRANSFER, ACTIVITY_SPL_BURN, ACTIVITY_SPL_MINT, ACTIVITY_SPL_CREATE_ACCOUNT, ACTIVITY_SPL_CLOSE_ACCOUNT, ACTIVITY_SPL_TOKEN_WITHDRAW_STAKE, ACTIVITY_SPL_TOKEN_SPLIT_STAKE, ACTIVITY_SPL_TOKEN_MERGE_STAKE, ACTIVITY_SPL_VOTE_WITHDRAW, ACTIVITY_SPL_SET_OWNER_AUTHORITY > - `--token-account`: Filter by specific token account address > - `--from`: Filter from address > - `--to`: Filter to address > - `--token`: Filter by token address (use [REDACTED_SECRET] for native SOL) > - `--amount`: Amount range (min max) > - `--from-time`, `--to-time`: Unix timestamp range > - `--exclude-amount-zero`: Exclude zero amount transfers > - `--flow`: Transfer direction: in|out > > **Deprecated parameters**: `block_time` (use `from_time`/`to_time` instead) **`account leaderboard` options:** > - `--sort-by`: sol_values|stake_values|token_values|total_values (default: total_values) > - `--sort-order`: asc|desc > - `--page-size`: 10, 20, 30, 40, 60, 100 (default: 10) **`account defi-export` filter options:** > - `--activity-type`: Activity type filter (comma-separated). Options: ACTIVITY_TOKEN_SWAP, ACTIVITY_AGG_TOKEN_SWAP, ACTIVITY_TOKEN_ADD_LIQ, ACTIVITY_TOKEN_REMOVE_LIQ, ACTIVITY_POOL_CREATE, ACTIVITY_SPL_TOKEN_STAKE, ACTIVITY_LST_STAKE, ACTIVITY_SPL_TOKEN_UNSTAKE, ACTIVITY_LST_UNSTAKE, ACTIVITY_TOKEN_DEPOSIT_VAULT, ACTIVITY_TOKEN_WITHDRAW_VAULT, ACTIVITY_SPL_INIT_MINT, ACTIVITY_ORDERBOOK_ORDER_PLACE, ACTIVITY_BORROWING, ACTIVITY_REPAY_BORROWING, ACTIVITY_LIQUIDATE_BORROWING, ACTIVITY_BRIDGE_ORDER_IN, ACTIVITY_BRIDGE_ORDER_OUT > - `--from`: Filter activities from a specific address > - `--platform`: Filter by platform address(es) (comma-separated, max 5) > - `--source`: Filter by source address(es) (comma-separated, max 5) > - `--token`: Filter by token address > - `--from-time`, `--to-time`: Unix timestamp range > - `--sort-by`: Sort field (default: block_time, options: block_time) > - `--sort-order`: Sort order: asc|desc (default: desc) > > **Deprecated parameters**: `block_time` (use `from_time`/`to_time` instead) ### Token | Action | Key Params | Returns | |---|---|---| | `token meta` | `--address` | Name, symbol, decimals, supply | | `token meta-multi` | `--addresses` | Batch metadata | | `token price` ⚠️ | `--address [--from-time] [--to-time]` | **DEPRECATED** - Single token price history (use `token price-history` instead) | | `token price-multi` ⚠️ | `--addresses [--from-time] [--to-time]` | **DEPRECATED** - Batch price history (use `token price-history` instead) | | `token price-latest` | `--addresses` | Latest price of multiple tokens (max 50, comma-separated) | | `token price-history` | `--addresses [--from-time] [--to-time]` | Historical price of multiple tokens (max 50, comma-separated; time: YYYYMMDD) | | `token holders` | `--address [--page] [--page-size] [--from-amount] [--to-amount] [--from-value] [--to-value]` | Top holder list with amounts (page-size: 10/20/30/40) | | `token markets` | `--token [--sort-by] [--program] [--page] [--page-size]` | DEX markets: 1 token for all markets, 2 tokens for pair search | | `token transfers` | `--address [filters...]` | Transfer history | | `token defi` | `--address [filters...]` | DeFi activity | | `token defi-export` | `--address [filters...]` | DeFi activity CSV | | `token historical` | `--address [--range]` | Historical data (price, volume, holder, trader,...) for a token (range: 7 or 30 days, default: 7) | | `token search` | `--keyword [--search-mode] [--search-by] [--sort-by] [--sort-order] [--page] [--page-size]` | Search tokens by keyword/address/name/symbol | | `token trending` | `[--limit]` | Currently trending tokens | | `token list` | `[--page] [--page-size] [--sort-by] [--sort-order]` | Full token list (sort: holder|market_cap|created_time) | | `token top` | — | Top tokens by market cap | | `token latest` | `[--platform-id] [--page] [--page-size]` | Newly listed tokens (page-size: 10/20/30/40/60/100) | **`token price` parameters** ⚠️ DEPRECATED: > - `--address`: Token address (required) > - `--from-time`: Start time in YYYYMMDD format (optional) > - `--to-time`: End time in YYYYMMDD format (optional) **`token price-multi` parameters** ⚠️ DEPRECATED: > - `--addresses`: Token addresses, comma-separated (max 50, required) > - `--from-time`: Start time in YYYYMMDD format (optional) > - `--to-time`: End time in YYYYMMDD format (optional) **`token price-latest` parameters:** > - `--addresses`: Token addresses, comma-separated (max 50, required) **`token price-history` parameters:** > - `--addresses`: Token addresses, comma-separated (max 50, required) > - `--from-time`: Start time in YYYYMMDD format (optional) > - `--to-time`: End time in YYYYMMDD format (optional) **`token holders` parameters:** > - `--address`: Token address (required) > - `--page`: Page number (default: 1) > - `--page-size`: 10, 20, 30, 40 (default: 10) > - `--from-amount`: Minimum token holding amount (string format, optional) > - `--to-amount`: Maximum token holding amount (string format, optional) > - `--from-value`: Minimum token holding value in USD (optional) > - `--to-value`: Maximum token holding value in USD (optional) **`token markets` parameters:** > - `--token`: Token address(es) - REQUIRED (1 token for all markets, 2 tokens for pair search, comma-separated) > - `--sort-by`: Sort field: volume|trade|tvl|trader > - `--program`: Filter by DEX program(s) (comma-separated, max 5) > - `--page`: Page number (default: 1) > - `--page-size`: 10, 20, 30, 40, 60, 100 (default: 10) **`token transfers` filter options:** > - `--activity-type`: Transfer type filter (comma-separated). Options: ACTIVITY_SPL_TRANSFER, ACTIVITY_SPL_BURN, ACTIVITY_SPL_MINT, ACTIVITY_SPL_CREATE_ACCOUNT, ACTIVITY_SPL_CLOSE_ACCOUNT, etc. > - `--from`: Filter from address(es) (max 5, comma-separated) > - `--exclude-from`: Exclude from address(es) (max 5, comma-separated) > - `--to`: Filter to address(es) (max 5, comma-separated) > - `--exclude-to`: Exclude to address(es) (max 5, comma-separated) > - `--amount`: Amount range (min max) > - `--value`: USD value range (min max) > - `--exclude-amount-zero`: Exclude zero amount transfers (boolean flag) > - `--page-size`: 10, 20, 30, 40, 60, 100 (default: 10) > - `--sort-by`: block_time (default: block_time) > - `--sort-order`: asc|desc (default: desc) **`token defi` filter options:** > - `--activity-type`: Activity type filter (comma-separated). Options: ACTIVITY_TOKEN_SWAP, ACTIVITY_AGG_TOKEN_SWAP, ACTIVITY_TOKEN_ADD_LIQ, ACTIVITY_TOKEN_REMOVE_LIQ, ACTIVITY_POOL_CREATE, etc. > - `--from`: Filter activities from a specific address > - `--platform`: Filter by platform address(es) (comma-separated, max 5) > - `--source`: Filter by source address(es) (comma-separated, max 5) > - `--token`: Filter by token address > - `--from-time`, `--to-time`: Unix timestamp range filter > - `--page-size`: 10, 20, 30, 40, 60, 100 (default: 10) > - `--sort-by`: block_time (default: block_time) > - `--sort-order`: asc|desc (default: desc) **`token defi-export` filter options:** > - `--activity-type`: Activity type filter (comma-separated): ACTIVITY_TOKEN_SWAP, ACTIVITY_AGG_TOKEN_SWAP, etc. > - `--from`: Filter activities from a specific address > - `--platform`: Filter by platform address(es) (comma-separated, max 5) > - `--source`: Filter by source address(es) (comma-separated, max 5) > - `--token`: Filter by token address > - `--from-time`, `--to-time`: Unix timestamp range filter > - `--sort-by`: block_time (default: block_time) > - `--sort-order`: asc|desc (default: desc) **`token historical` parameters:** > - `--address`: Token address (required) > - `--range`: 7 or 30 days (default: 7) **`token search` parameters:** > - `--keyword`: Search term (required) > - `--search-by`: combination|address|name|symbol (default: combination) > - `--search-mode`: exact|fuzzy (default: exact) > - `--exclude-unverified-token`: Exclude unverified tokens (boolean flag) > - `--sort-by`: reputation|market_cap|volume_24h (default: reputation) > - `--sort-order`: asc|desc (default: desc) > - `--page`, `--page-size`: 10, 20, 30, 40 (default: 10) **`token latest` platforms:** > - `--platform-id`: jupiter, lifinity, meteora, orca, raydium, phoenix, sanctum, kamino, pumpfun, openbook, apepro, stabble, jupiterdca, jupiter_limit_order, solfi, zerofi, letsbonkfun_launchpad, raydium_launchlab, believe_launchpad, moonshot_launchpad, jup_studio_launchpad, bags_launchpad ### Transaction | Action | Key Params | Returns | |---|---|---| | `transaction detail` | `--tx` | Full tx details (token and sol balance changes, IDL data, defi or transfer activities of each instructions) | | `transaction detail-multi` | `--txs` | Batch tx details (max 50 transactions) | | `transaction last` | `[--limit] [--filter]` | Most recent transactions | | `transaction actions` | `--tx` | Human-readable decoded actions (transfers, swap activities, nft activities...) | | `transaction actions-multi` | `--txs` | Batch decoded actions (max 50 transactions) | | `transaction fees` | — | Network fees statistics (no parameters) | **`transaction last` parameters:** > - `--limit`: Number of transactions to return (10, 20, 30, 40, 60, 100, default: 10) > - `--filter`: Filter type (exceptVote, all, default: exceptVote) **`transaction detail` parameters:** > - `--tx`: Transaction signature (required, length: 30-100 characters) **`transaction detail-multi` parameters:** > - `--txs`: Transaction signatures, comma-separated (required, max 50, each 30-100 characters) **`transaction actions` parameters:** > - `--tx`: Transaction signature (required, length: 30-100 characters) **`transaction actions-multi` parameters:** > - `--txs`: Transaction signatures, comma-separated (required, max 50, each 30-100 characters) ### NFT | Action | Key Params | Returns | |---|---|---| | `nft news` | `--filter [--page] [--page-size]` | Latest NFT activity feed (filter: created_time, page-size: 12/24/36) | | `nft activities` | `[filters...]` | NFT activities (all filters optional: from, to, source, activity-type, token, collection, currency-token, price, from-time, to-time) | | `nft collections` | `[--range] [--sort-by] [--sort-order] [--collection] [--page] [--page-size]` | Top NFT collections (range: 1/7/30 days, sort: items/floor_price/volumes) | | `nft items` | `--collection [--sort-by] [--page] [--page-size]` | Items inside a collection (sort: last_trade/listing_price, page-size: 12/24/36) | **`nft activities` parameters** (all optional): > - `--from`, `--to`: Filter by address > - `--source`: Filter by source address(es) (comma-separated, max 5) > - `--activity-type`: Type of activity (comma-separated). Options: ACTIVITY_NFT_SOLD, ACTIVITY_NFT_LISTING, ACTIVITY_NFT_BIDDING, ACTIVITY_NFT_CANCEL_BID, ACTIVITY_NFT_CANCEL_LIST, ACTIVITY_NFT_REJECT_BID, ACTIVITY_NFT_UPDATE_PRICE, ACTIVITY_NFT_LIST_AUCTION > - `--token`: Token address > - `--collection`: Collection address > - `--currency-token`: Currency token address > - `--price`: Price range filter (min max, requires currency_token parameter) > - `--from-time`, `--to-time`: Unix timestamp range > - `--page-size`: 10, 20, 30, 40, 60, 100 (default: 10) > - `--block-time` ⚠️ **DEPRECATED**: Use `--from-time`/`--to-time` instead **`nft collections` parameters** (all optional): > - `--range`: Days range (1, 7, 30, default: 1) > - `--sort-by`: Sort field (items, floor_price, volumes, default: volumes) > - `--sort-order`: Sort order (asc, desc, default: desc) > - `--collection`: Filter by collection ID > - `--page`: Page number (default: 1) > - `--page-size`: 10, 20, 30, 40 (default: 10) **`nft items` parameters**: > - `--collection`: Collection address (required) > - `--sort-by`: Sort field (last_trade, listing_price, default: last_trade) > - `--page`: Page number (default: 1) > - `--page-size`: 12, 24, 36 (default: 12) ### Block | Action | Key Params | Returns | |---|---|---| | `block last` | `[--limit]` | Get the list of the latest blocks | | `block detail` | `--block` | Get the details of a block | | `block transactions` | `--block [--page] [--page-size] [--exclude-vote] [--program]` | Get the list of transactions of a block | **`block last` parameters:** > - `--limit`: Number of blocks to return (10, 20, 30, 40, 60, 100, default: 10) **`block detail` parameters:** > - `--block`: The slot index of a block (required, minimum: 0) **`block transactions` parameters:** > - `--block`: The slot index of a block (required, minimum: 0) > - `--page`: Page number for pagination (default: 1) > - `--page-size`: Number of items per page (10, 20, 30, 40, 60, 100, default: 10) > - `--exclude-vote`: Excludes vote transactions from the results (boolean flag, default: false) > - `--program`: The program used to filter transactions that interact with it (optional, string) ### Market | Action | Key Params | Returns | |---|---|---| | `market list` | `[--page] [--page-size] [--program] [--token-address] [--sort-by] [--sort-order]` | All trading pools/markets (sort: created_time\|volumes_24h\|trades_24h) | | `market info` | `--address` | Get market/pool details by address | | `market volume` | `--address [--time]` | Get historical market data and volume | **`market list` parameters:** > - `--page`: Page number (default: 1) > - `--page-size`: Number of items per page (10, 20, 30, 40, 60, 100, default: 10) > - `--program`: Program owner address (optional) > - `--token-address`: Token address involved in market (optional) > - `--sort-by`: Sort field (created_time, volumes_24h, trades_24h, default: volumes_24h) > - `--sort-order`: Sort order (asc, desc, default: desc) **`market info` parameters:** > - `--address`: Market ID/address (required, minimum length: 30 characters) **`market volume` parameters:** > - `--address`: Market ID/address (required, minimum length: 30 characters) > - `--time`: Filter data by time range in YYYYMMDD format. Pass start and end date to filter by time range (e.g., `--time 20240701 20240715`). Accepts 1-2 values (optional) ### Program | Action | Key Params | Returns | |---|---|---| | `program list` | `[--sort-by] [--sort-order] [--page] [--page-size]` | Programs active in last 90 days (sort: num_txs\|num_txs_success\|interaction_volume\|success_rate\|active_users_24h) | | `program popular-platforms` | — | Popular DeFi platforms | | `program analytics` | `--address --range` | Program-level analytics for any Solana program (range: 7 or 30 days, required) | **`program list` parameters:** > - `--sort-by`: Sort field (num_txs, num_txs_success, interaction_volume, success_rate, active_users_24h, default: num_txs) > - `--sort-order`: Sort order (asc, desc) > - `--page`: Page number (default: 1) > - `--page-size`: 10, 20, 30, 40 (default: 10) **`program analytics` parameters:** > - `--address`: Program address on Solana blockchain (required, minimum: 30 characters) > - `--range`: Analytics time range in days (7 or 30, required) ### Monitor | Action | Key Params | Returns | |---|---|---| | `monitor usage` | — | Your API key usage & rate limits | --- ## Error Handling | HTTP Code | Meaning | Agent Action | |---|---|---| | `400` | Bad request / invalid address | Validate address format, retry | | `401` | Authentication failed | Check `token` header is set correctly | | `429` | Rate limit exceeded | Wait and retry with backoff | | `500` | Internal server error | Retry once; report if persistent | All error responses include `success: false`, `code`, and `message` fields. --- ## Example Workflows ### Wallet Research Workflow - [ ] Step 1: `account metadata --address <ADDR>` → confirm label and type - [ ] Step 2: `account portfolio --address <ADDR>` → get token holdings - [ ] Step 3: `account transfer --address <ADDR>` → review recent activity - [ ] Step 4: `account defi --address <ADDR>` → check protocol interactions ### Token Analysis Workflow - [ ] Step 1: `token meta --address <MINT>` → confirm token identity - [ ] Step 2: `token price --address <MINT>` → get current price - [ ] Step 3: `token holders --address <MINT>` → check concentration risk - [ ] Step 4: `token markets --token <MINT>` → find best liquidity pools --- ## Evaluations | Query | Expected Behavior | |---|---| | "What tokens does wallet `ABC123` hold?" | Calls `account portfolio --address ABC123`, returns token list with USD values | | "What is the current price of BONK?" | Calls `token meta` to resolve mint, then `token price`, returns USD price | | "Decode transaction `XYZ...`" | Calls `transaction actions --signature XYZ`, returns human-readable action list | | "Is this a known wallet?" | Calls `account metadata --address`, returns label/tags/domain if available | --- *Resources: [Solscan Pro API Docs](https://pro-api.solscan.io/pro-api-docs/v2.0), [Solscan Pro API FAQs](https://pro-api.solscan.io/pro-api-docs/v2.0/faq.md)*


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)