# Blockscout > API for BlockScout web app (56 operations) MCP endpoint: https://blockscout.mcp.junct.dev/mcp Domain: analytics Auth: none ## Tools ## Read ### get_txs [DISCOVERY] get transactions Returns: { items: { timestamp: string, fee: { type: unknown, value: unknown }, gas_limit: number, block_number: number, status: string, method: string, ... }[], next_page_params: object }. **Parameters:** - `filter` (string, optional): query parameter: filter (string) - `type` (string, optional): query parameter: type (string) - `method` (string, optional): query parameter: method (string) > Call this first to discover valid IDs/slugs. ### get_blocks [DISCOVERY] get blocks Returns: { items: { base_fee_per_gas: string, burnt_fees: string, burnt_fees_percentage: number, difficulty: string, extra_data: string, gas_limit: string, ... }[], next_page_params: object }. **Parameters:** - `type` (string, optional): query parameter: type (string) > Call this first to discover valid IDs/slugs. ### get_token_transfers [DISCOVERY] get token transfers Returns: { items: { token_type: "ERC-20" | "ERC-721" | "ERC-1155" | "ERC-404", block_hash: string, from: { hash: unknown, implementation_name: unknown, name: unknown, ens_domain_name: unknown, metadata: unknown, is_contract: unknown, ... }, log_index: number, method: string, timestamp: string, ... }[], next_page_params: object }. _No parameters required._ > Call this first to discover valid IDs/slugs. ### get_internal_transactions [DISCOVERY] get internal transactions Returns: { items: { block_number: number, created_contract: { hash: unknown, implementation_name: unknown, name: unknown, ens_domain_name: unknown, metadata: unknown, is_contract: unknown, ... }, error: string, from: { hash: unknown, implementation_name: unknown, name: unknown, ens_domain_name: unknown, metadata: unknown, is_contract: unknown, ... }, gas_limit: string, index: number, ... }[], next_page_params: object }. _No parameters required._ > Call this first to discover valid IDs/slugs. ### get_main_page_txs [DISCOVERY] get main page transactions _No parameters required._ > Call this first to discover valid IDs/slugs. ### get_main_page_tokens [DISCOVERY] get main page blocks — from Blockscout _No parameters required._ > Call this first to discover valid IDs/slugs. ### get_indexing_status [DISCOVERY] get indexing status Returns: { finished_indexing: boolean, finished_indexing_blocks: boolean, indexed_blocks_ratio: string, ... }. _No parameters required._ > Call this first to discover valid IDs/slugs. ### get_stats [DISCOVERY] get stats counters Returns: { total_blocks: string, total_addresses: string, total_transactions: string, ... }. _No parameters required._ > Call this first to discover valid IDs/slugs. ### get_addresses [DISCOVERY] get native coin holders list Returns: { exchange_rate: string, total_supply: string, items: { creator_address_hash: unknown, creation_transaction_hash: unknown, token: unknown, coin_balance: unknown, exchange_rate: unknown, implementation_address: unknown, ... }[], ... }. _No parameters required._ > Call this first to discover valid IDs/slugs. ### get_smart_contracts [DISCOVERY] get verified smart contracts Returns: { items: { address_hash: { hash: unknown, implementation_name: unknown, name: unknown, ens_domain_name: unknown, metadata: unknown, is_contract: unknown, ... }, coin_balance: string, compiler_version: string, language: string, has_constructor_args: boolean, optimization_enabled: boolean, ... }[], next_page_params: object }. **Parameters:** - `q` (string, optional): query parameter: q (string) - `filter` (string, optional): query parameter: filter (string) > Call this first to discover valid IDs/slugs. ### get_smart_contracts_counters [DISCOVERY] get verified smart contracts counters Returns: { new_smart_contracts_24h: string, new_verified_smart_contracts_24h: string, smart_contracts: string, ... }. _No parameters required._ > Call this first to discover valid IDs/slugs. ### get_withdrawals [DISCOVERY] get withdrawals Returns: { items: { index: number, amount: string, validator_index: number, receiver: { hash: unknown, implementation_name: unknown, name: unknown, ens_domain_name: unknown, metadata: unknown, is_contract: unknown, ... }, block_number: number, timestamp: string }[], next_page_params: object }. _No parameters required._ > Call this first to discover valid IDs/slugs. ### get_account_abstraction_status [DISCOVERY] get account abstraction indexing status Returns: { finished_past_indexing: boolean, v06: { enabled: boolean, live: boolean, past_db_logs_indexing_finished: boolean, past_rpc_logs_indexing_finished: boolean }, v07: { enabled: boolean, live: boolean, past_db_logs_indexing_finished: boolean, past_rpc_logs_indexing_finished: boolean } }. _No parameters required._ > Call this first to discover valid IDs/slugs. ### search [DISCOVERY] search Returns: { items: string[], next_page_params: object }. **Parameters:** - `q` (string, optional): query parameter: q (string) ### search_redirect search redirect Returns: { parameter: string, redirect: boolean, type: string }. **Parameters:** - `q` (string, optional): query parameter: q (string) ### get_txs_chart get transactions chart Returns: { chart_data: { date: string, transactions_count: number }[] }. _No parameters required._ ### get_market_chart get market chart Returns: { available_supply: string, chart_data: { date: string, closing_price: string, market_cap: string }[] }. _No parameters required._ ### get_tx get transaction info Returns: { timestamp: string, fee: { type: string, value: string }, gas_limit: number, ... }. **Parameters:** - `transaction_hash` (string, required): Transaction hash ### get_transaction_token_transfers get transaction token transfers Returns: { items: { token_type: "ERC-20" | "ERC-721" | "ERC-1155" | "ERC-404", block_hash: string, from: { hash: unknown, implementation_name: unknown, name: unknown, ens_domain_name: unknown, metadata: unknown, is_contract: unknown, ... }, log_index: number, method: string, timestamp: string, ... }[], next_page_params: object }. **Parameters:** - `transaction_hash` (string, required): Transaction hash - `type` (string, optional): query parameter: type (string) ### get_transaction_internal_txs get transaction internal transactions Returns: { items: { block_number: number, created_contract: { hash: unknown, implementation_name: unknown, name: unknown, ens_domain_name: unknown, metadata: unknown, is_contract: unknown, ... }, error: string, from: { hash: unknown, implementation_name: unknown, name: unknown, ens_domain_name: unknown, metadata: unknown, is_contract: unknown, ... }, gas_limit: string, index: number, ... }[], next_page_params: object }. **Parameters:** - `transaction_hash` (string, required): Transaction hash ### get_transaction_logs get transaction logs Returns: { items: { address_hash: { hash: unknown, implementation_name: unknown, name: unknown, ens_domain_name: unknown, metadata: unknown, is_contract: unknown, ... }, block_hash: string, block_number: number, data: string, decoded: { method_call: unknown, method_id: unknown, parameters: unknown }, index: number, ... }[], next_page_params: object }. **Parameters:** - `transaction_hash` (string, required): Transaction hash ### get_transaction_raw_trace get transaction raw trace **Parameters:** - `transaction_hash` (string, required): Transaction hash ### get_transaction_state_changes get transaction state changes Returns: { items: { token: { circulating_market_cap: unknown, icon_url: unknown, name: unknown, decimals: unknown, symbol: unknown, address_hash: unknown, ... }, type: string, is_miner: boolean, address_hash: { hash: unknown, implementation_name: unknown, name: unknown, ens_domain_name: unknown, metadata: unknown, is_contract: unknown, ... }, balance_before: string, balance_after: string, ... }[], next_page_params: object }. **Parameters:** - `transaction_hash` (string, required): Transaction hash ### get_transaction_summary get human-readable transaction summary Returns: { success: boolean, data: { summaries: { summary_template: string, summary_template_variables: unknown }[] } }. **Parameters:** - `transaction_hash` (string, required): Transaction hash ### get_block get block info Returns: { base_fee_per_gas: string, burnt_fees: string, burnt_fees_percentage: number, ... }. **Parameters:** - `block_number_or_hash` (string, required): Block number or hash ### get_block_txs get block transactions Returns: { items: { timestamp: string, fee: { type: unknown, value: unknown }, gas_limit: number, block_number: number, status: string, method: string, ... }[], next_page_params: object }. **Parameters:** - `block_number_or_hash` (string, required): Block number or hash ### get_block_withdrawals get block withdrawals Returns: { items: { index: number, amount: string, validator_index: number, receiver: { hash: unknown, implementation_name: unknown, name: unknown, ens_domain_name: unknown, metadata: unknown, is_contract: unknown, ... }, block_number: number, timestamp: string }[], next_page_params: object }. **Parameters:** - `block_number_or_hash` (string, required): Block number or hash ### get_address get address info Returns: { creator_address_hash: string, creation_transaction_hash: string, token: { circulating_market_cap: string, icon_url: string, name: string, decimals: string, symbol: string, address_hash: string, ... }, ... }. **Parameters:** - `address_hash` (string, required): Address hash ### get_address_counters get address counters Returns: { transactions_count: string, token_transfers_count: string, gas_usage_count: string, ... }. **Parameters:** - `address_hash` (string, required): Address hash ### get_address_txs get address transactions Returns: { items: { timestamp: string, fee: { type: unknown, value: unknown }, gas_limit: number, block_number: number, status: string, method: string, ... }[], next_page_params: object }. **Parameters:** - `address_hash` (string, required): Address hash - `filter` (string, optional): query parameter: filter (string) ### get_address_token_transfers get address token transfers Returns: { items: { token_type: "ERC-20" | "ERC-721" | "ERC-1155" | "ERC-404", block_hash: string, from: { hash: unknown, implementation_name: unknown, name: unknown, ens_domain_name: unknown, metadata: unknown, is_contract: unknown, ... }, log_index: number, method: string, timestamp: string, ... }[], next_page_params: object }. **Parameters:** - `address_hash` (string, required): Address hash - `type` (string, optional): query parameter: type (string) - `filter` (string, optional): query parameter: filter (string) - `token` (string, optional): query parameter: token (string) ### get_address_internal_txs get address internal transactions Returns: { items: { block_number: number, created_contract: { hash: unknown, implementation_name: unknown, name: unknown, ens_domain_name: unknown, metadata: unknown, is_contract: unknown, ... }, error: string, from: { hash: unknown, implementation_name: unknown, name: unknown, ens_domain_name: unknown, metadata: unknown, is_contract: unknown, ... }, gas_limit: string, index: number, ... }[], next_page_params: object }. **Parameters:** - `address_hash` (string, required): Address hash - `filter` (string, optional): query parameter: filter (string) ### get_address_logs get address logs Returns: { items: { address_hash: { hash: unknown, implementation_name: unknown, name: unknown, ens_domain_name: unknown, metadata: unknown, is_contract: unknown, ... }, block_hash: string, block_number: number, data: string, decoded: { method_call: unknown, method_id: unknown, parameters: unknown }, index: number, ... }[], next_page_params: object }. **Parameters:** - `address_hash` (string, required): Address hash ### get_address_blocks_validated get blocks validated by address Returns: { items: { base_fee_per_gas: string, burnt_fees: string, burnt_fees_percentage: number, difficulty: string, extra_data: string, gas_limit: string, ... }[], next_page_params: object }. **Parameters:** - `address_hash` (string, required): Address hash ### get_address_token_balances get all tokens balances for the address **Parameters:** - `address_hash` (string, required): Address hash ### get_address_tokens [DISCOVERY] token balances with filtering and pagination Returns: { items: { token_instance: { is_unique: unknown, id: unknown, holder_address_hash: unknown, image_url: unknown, animation_url: unknown, external_app_url: unknown, ... }, value: string, token_id: string, token: { name: unknown, decimals: unknown, symbol: unknown, address_hash: unknown, type: unknown, holders_count: unknown, ... } }[], next_page_params: object }. **Parameters:** - `address_hash` (string, required): Address hash - `type` (string, optional): query parameter: type (string) ### get_address_coin_balance_history get address coin balance history Returns: { items: { transaction_hash: string, block_number: number, block_timestamp: string, delta: string, value: string }[], next_page_params: object }. **Parameters:** - `address_hash` (string, required): Address hash ### get_address_coin_balance_history_by_day get address coin balance history by day **Parameters:** - `address_hash` (string, required): Address hash ### get_address_withdrawals get address withdrawals Returns: { items: { index: number, amount: string, validator_index: number, receiver: { hash: unknown, implementation_name: unknown, name: unknown, ens_domain_name: unknown, metadata: unknown, is_contract: unknown, ... }, block_number: number, timestamp: string }[], next_page_params: object }. **Parameters:** - `address_hash` (string, required): Address hash ### get_address_nft get list of NFT owned by address Returns: { items: { is_unique: boolean, id: string, holder_address_hash: string, image_url: string, animation_url: string, external_app_url: string, ... }[], next_page_params: object }. **Parameters:** - `address_hash` (string, required): Address hash - `type` (string, optional): query parameter: type (string) ### get_address_nft_collections get list of NFT owned by address, grouped by collection Returns: { items: { token: { circulating_market_cap: unknown, icon_url: unknown, name: unknown, decimals: unknown, symbol: unknown, address_hash: unknown, ... }, amount: string, token_instances: unknown[] }[], next_page_params: object }. **Parameters:** - `address_hash` (string, required): Address hash - `type` (string, optional): query parameter: type (string) ### get_tokens_list [DISCOVERY] get tokens list Returns: { items: { circulating_market_cap: string, icon_url: string, name: string, decimals: string, symbol: string, address_hash: string, ... }[], next_page_params: object }. **Parameters:** - `q` (string, optional): query parameter: q (string) - `type` (string, optional): query parameter: type (string) ### get_token get token info Returns: { circulating_market_cap: string, icon_url: string, name: string, ... }. **Parameters:** - `address_hash` (string, required): Address hash ### get_token_token_transfers get token token transfers Returns: { items: { token_type: "ERC-20" | "ERC-721" | "ERC-1155" | "ERC-404", block_hash: string, from: { hash: unknown, implementation_name: unknown, name: unknown, ens_domain_name: unknown, metadata: unknown, is_contract: unknown, ... }, log_index: number, method: string, timestamp: string, ... }[], next_page_params: object }. **Parameters:** - `address_hash` (string, required): Address hash ### get_token_holders get token holders Returns: { items: { address_hash: { hash: unknown, implementation_name: unknown, name: unknown, ens_domain_name: unknown, metadata: unknown, is_contract: unknown, ... }, value: string, token_id: string }[], next_page_params: object }. **Parameters:** - `address_hash` (string, required): Address hash ### get_token_counters get token holders Returns: { token_holders_count: string, transfers_count: string }. **Parameters:** - `address_hash` (string, required): Address hash ### get_nft_instances get NFT instances Returns: { items: { is_unique: boolean, id: string, holder_address_hash: string, image_url: string, animation_url: string, external_app_url: string, ... }[], next_page_params: object }. **Parameters:** - `address_hash` (string, required): Address hash ### get_nft_instance get NFT instance by id Returns: { is_unique: boolean, id: string, holder_address_hash: string, ... }. PREREQUISITE: You MUST first call a listing/map endpoint to resolve asset identifiers (id, slug, symbol) before calling data endpoints. **Parameters:** - `address_hash` (string, required): Address hash - `id` (number, required): integer id ### get_nft_instance_transfers get transfers of NFT instance Returns: { items: { token_type: "ERC-20" | "ERC-721" | "ERC-1155" | "ERC-404", block_hash: string, from: { hash: unknown, implementation_name: unknown, name: unknown, ens_domain_name: unknown, metadata: unknown, is_contract: unknown, ... }, log_index: number, method: string, timestamp: string, ... }[], next_page_params: object }. PREREQUISITE: You MUST first call a listing/map endpoint to resolve asset identifiers (id, slug, symbol) before calling data endpoints. **Parameters:** - `address_hash` (string, required): Address hash - `id` (number, required): integer id ### get_token_instance_holders get token instance holders Returns: { items: { address_hash: { hash: unknown, implementation_name: unknown, name: unknown, ens_domain_name: unknown, metadata: unknown, is_contract: unknown, ... }, value: string, token_id: string }[], next_page_params: object }. PREREQUISITE: You MUST first call a listing/map endpoint to resolve asset identifiers (id, slug, symbol) before calling data endpoints. **Parameters:** - `address_hash` (string, required): Address hash - `id` (number, required): integer id ### get_nft_instance_transfers_count get transfers count of NFT instance Returns: { transfers_count: number }. PREREQUISITE: You MUST first call a listing/map endpoint to resolve asset identifiers (id, slug, symbol) before calling data endpoints. **Parameters:** - `address_hash` (string, required): Address hash - `id` (number, required): integer id ### get_smart_contract get smart contract Returns: { verified_twin_address_hash: string, is_blueprint: boolean, is_verified: boolean, ... }. **Parameters:** - `address_hash` (string, required): Address hash ### celestia_service_get_blob GET /api/v1/celestia/blob Returns: { height: string, namespace: string, commitment: string, ... }. **Parameters:** - `height` (string, optional): query parameter: height (string) - `commitment` (string, optional): query parameter: commitment (string) - `skipData` (boolean, optional): query parameter: skipData (boolean) ### celestia_service_get_l2_batch_metadata [DISCOVERY] GET /api/v1/celestia/l2BatchMetadata Returns: { l2ChainId: number, l2BatchId: string, l2StartBlock: string, ... }. **Parameters:** - `height` (string, optional): query parameter: height (string) - `namespace` (string, optional): query parameter: namespace (string) - `commitment` (string, optional): query parameter: commitment (string) ### health_check If the requested service is unknown, the call will fail with status NOT_FOUND. Returns: { status: "UNKNOWN" | "SERVING" | "NOT_SERVING" | "SERVICE_UNKNOWN" }. **Parameters:** - `service` (string, optional): query parameter: service (string) ## Write ### refetch_token_instance_metadata [DISCOVERY] re-fetch token instance metadata Returns: { message: string }. **Parameters:** - `address_hash` (string, required): Address hash - `id` (number, required): integer id - `recaptcha_response` (string, required): recaptcha_response (string) ## Usage Connect to this MCP server at `https://blockscout.mcp.junct.dev/mcp`. All tools are callable via the MCP protocol. Call `get_txs` first to discover valid identifiers required by other tools. Write operations like `refetch_token_instance_metadata` return data or calldata for agent use.