Empowers AI agents to retrieve professional-grade Solana on-chain data across accounts, tokens, NFTs, transactions, blocks, markets, and programs.
All requests require an API key in the HTTP header:
http
token: <YOUR_SOLSCAN_API_KEY>
Base URL: https://pro-api.solscan.io/v2.0
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]
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 signatureget_account_balance — retrieve SOL balance for a walletget_token_metadata — get name, symbol, decimals for a token mintActionKey ParamsReturnsaccount detail``--addressLamports, owner, executable flagaccount data-decoded``--addressDecoded account dataaccount metadata``--addressLabel, icon, tags, domain, funderaccount metadata-multi``--addressesBatch 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 valueaccount 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 activityaccount 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). UseSo11111111111111111111111111111111111111111for 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(usefrom_time/to_timeinstead)
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(usefrom_time/to_timeinstead)
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(usefrom_time/to_timeinstead)
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 (useSo11111111111111111111111111111111111111111for 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|outDeprecated parameters:
block_time(usefrom_time/to_timeinstead)
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(usefrom_time/to_timeinstead)
ActionKey ParamsReturnstoken meta``--addressName, symbol, decimals, supplytoken meta-multi``--addressesBatch metadatatoken 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``--addressesLatest 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 searchtoken transfers``--address [filters...]Transfer historytoken defi``--address [filters...]DeFi activitytoken defi-export``--address [filters...]DeFi activity CSVtoken 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/symboltoken trending``[--limit]Currently trending tokenstoken list``[--page] [--page-size] [--sort-by] [--sort-order]Full token list (sort: holdertoken top—Top tokens by market captoken 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
ActionKey ParamsReturnstransaction detail``--txFull tx details (token and sol balance changes, IDL data, defi or transfer activities of each instructions)transaction detail-multi``--txsBatch tx details (max 50 transactions)transaction last``[--limit] [--filter]Most recent transactionstransaction actions``--txHuman-readable decoded actions (transfers, swap activities, nft activities...)transaction actions-multi``--txsBatch 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)
ActionKey ParamsReturnsnft 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-timeinstead
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)
ActionKey ParamsReturnsblock last``[--limit]Get the list of the latest blocksblock detail``--blockGet the details of a blockblock 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)
ActionKey ParamsReturnsmarket list``[--page] [--page-size] [--program] [--token-address] [--sort-by] [--sort-order]All trading pools/markets (sort: created_time|volumes_24h|trades_24h)market info``--addressGet market/pool details by addressmarket 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)
ActionKey ParamsReturnsprogram 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 platformsprogram analytics``--address --rangeProgram-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)
ActionKey ParamsReturnsmonitor usage—Your API key usage & rate limits
HTTP CodeMeaningAgent Action400Bad request / invalid addressValidate address format, retry401Authentication failedCheck token header is set correctly429Rate limit exceededWait and retry with backoff500Internal server errorRetry once; report if persistent
All error responses include success: false, code, and message fields.
account metadata --address <ADDR> → confirm label and typeaccount portfolio --address <ADDR> → get token holdingsaccount transfer --address <ADDR> → review recent activityaccount defi --address <ADDR> → check protocol interactionstoken meta --address <MINT> → confirm token identitytoken price --address <MINT> → get current pricetoken holders --address <MINT> → check concentration risktoken markets --token <MINT> → find best liquidity poolsQueryExpected 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, Solscan Pro API FAQs