1scan - Blockchain Explorer API Gateway & MCP Server

by huahuayu

9 305 downloads Not rated yet
GitHub

About

A unified API gateway for integrating multiple etherscan-like blockchain explorer APIs with Model Context Protocol (MCP) support for AI assistants.

Explore

- 🔄 Unified API endpoint for multiple blockchain explorers
- ⚖️ API load balancing
- 🔑 API rate limit management
- 🎯 Custom API key support via URL parameters
- 🤖 MCP server for AI assistants to query blockchain data

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name 1scan - Blockchain Explorer API Gateway & MCP Server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Create a config.json file with your API keys:

{
  "1": {
    "endpoint": "api.etherscan.io",
    "keys": {
      "YOUR_ETHERSCAN_API_KEY_1": 5,
      "YOUR_ETHERSCAN_API_KEY_2": 10
    }
  },
  "56": {
    "endpoint": "api.bscscan.com",
    "keys": {
      "YOUR_BSCSCAN_API_KEY": 5
    }
  }
}

Each chain entry contains:

- chainID: The blockchain network ID
- endpoint: The API endpoint for the blockchain explorer
- keys: Map of API keys and their rate limits (requests per second)

When running the MCP server, you can customize it with these parameters:

- -port: Port to run the MCP server on (default: "3000")
- -path: Path for the MCP server endpoint (default: "/mcp")
- -config: Path to configuration file (default: "config.json")
- -transport: Transport type (sse or stdio) (default: "sse")

Example:

1scanmcp -port 3000 -config /path/to/config.json

ps aux | grep 1scanmcp
```

2. Ensure the correct URL is configured in Cursor

getAccountBalance

Get the balance of an account on a specific blockchain

getTokenBalance

Get the token balance of an account on a specific blockchain

getTransactionByHash

Get transaction details by hash

getBlockByNumber

Get block information by block number

getContractABI

Get the ABI for a verified contract

getContractSourceCode

Get the source code of a verified contract

getTokenInfo

Get information about an ERC20 token

getGasPrice

Get current gas price on a specific blockchain

getLogs

Get event logs matching specified parameters

getTransaction

Get details of a transaction by its hash

getTransactionCount

Get the number of transactions sent from an address

getTransactionReceipt

Get transaction receipt by transaction hash

getBlockTransactionCountByNumber

Get the number of transactions in a block

getBlockTransactionCountByHash

Get the number of transactions in a block by block hash

getBlockByHash

Get information about a block by its hash

getNormalTransactions

Get normal transactions by address

getInternalTransactions

Get internal transactions by address or transaction hash

getERC20Transfers

Get ERC-20 token transfer events by address or contract

getERC721Transfers

Get ERC-721 NFT transfer events by address or contract

getValidators

Get validator information (for networks with validator sets)

getContractCreation

Get contract creation information

getContractVerificationStatus

Check contract verification status

The MCP server exposes these tools to AI models:

- getAccountBalance - Get the balance of an account on a specific blockchain
- getTokenBalance - Get the token balance of an account on a specific blockchain
- getTransactionByHash - Get transaction details by hash
- getBlockByNumber - Get block information by block number
- getContractABI - Get the ABI for a verified contract
- getContractSourceCode - Get the source code of a verified contract
- getTokenInfo - Get information about an ERC20 token
- getGasPrice - Get current gas price on a specific blockchain
- getLogs - Get event logs matching specified parameters
- getTransaction - Get details of a transaction by its hash
- getTransactionCount - Get the number of transactions sent from an address
- getTransactionReceipt - Get transaction receipt by transaction hash
- getBlockTransactionCountByNumber - Get the number of transactions in a block
- getBlockTransactionCountByHash - Get the number of transactions in a block by block hash
- getBlockByHash - Get information about a block by its hash
- getNormalTransactions - Get normal transactions by address
- getInternalTransactions - Get internal transactions by address or transaction hash
- getERC20Transfers - Get ERC-20 token transfer events by address or contract
- getERC721Transfers - Get ERC-721 NFT transfer events by address or contract
- getValidators - Get validator information (for networks with validator sets)
- getContractCreation - Get contract creation information
- getContractVerificationStatus - Check contract verification status

The MCP server exposes these tools to AI models:

- getAccountBalance - Get the balance of an account on a specific blockchain
- getTokenBalance - Get the token balance of an account on a specific blockchain
- getTransactionByHash - Get transaction details by hash
- getBlockByNumber - Get block information by block number
- getContractABI - Get the ABI for a verified contract
- getContractSourceCode - Get the source code of a verified contract
- getTokenInfo - Get information about an ERC20 token
- getGasPrice - Get current gas price on a specific blockchain
- getLogs - Get event logs matching specified parameters
- getTransaction - Get details of a transaction by its hash
- getTransactionCount - Get the number of transactions sent from an address
- getTransactionReceipt - Get transaction receipt by transaction hash
- getBlockTransactionCountByNumber - Get the number of transactions in a block
- getBlockTransactionCountByHash - Get the number of transactions in a block by block hash
- getBlockByHash - Get information about a block by its hash
- getNormalTransactions - Get normal transactions by address
- getInternalTransactions - Get internal transactions by address or transaction hash
- getERC20Transfers - Get ERC-20 token transfer events by address or contract
- getERC721Transfers - Get ERC-721 NFT transfer events by address or contract
- getValidators - Get validator information (for networks with validator sets)
- getContractCreation - Get contract creation information
- getContractVerificationStatus - Check contract verification status

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "1scan - blockchain explorer api gateway & mcp server": {
            "1scan": {
                "url": "http://localhost:3000/mcp/sse",
                "command": "1scanmcp"
            }
        }
    }
}

McpServers

{
    "1scan": {
        "url": "http://localhost:3000/mcp/sse",
        "command": "1scanmcp"
    }
}

A unified API gateway for integrating multiple etherscan-like blockchain explorer APIs with Model Context Protocol (MCP) support for AI assistants.

Overview

1scan provides two main components:

1. API Gateway: A unified endpoint for accessing multiple blockchain explorer APIs
2. MCP Server: Allows AI models (like Claude in Cursor IDE) to directly query blockchain data

Supported Blockchain Networks

Apply for your own API key from the corresponding blockchain explorer

| Network Name | Chain ID | Explorer Link | Explorer API Endpoint |
| ------------------- | -------- | ------------------------------- | ------------------------------------ |
| Ethereum | 1 | https://etherscan.io | api.etherscan.io |
| Binance Smart Chain | 56 | https://bscscan.com | api.bscscan.com |
| Arbitrum One | 42161 | https://arbiscan.io | api.arbiscan.io |
| Polygon | 137 | https://polygonscan.com | api.polygonscan.com |
| Optimism | 10 | https://optimistic.etherscan.io | api-optimistic.etherscan.io |
| Avalanche C-Chain | 43114 | https://snowtrace.io | api.snowtrace.io |
| Base | 8453 | https://basescan.org | api.basescan.org |
| zkSync Era | 324 | https://explorer.zksync.io | block-explorer-api.mainnet.zksync.io |
| Gnosis | 100 | https://gnosisscan.io | api.gnosisscan.io |
| Fantom | 250 | https://ftmscan.com | api.ftmscan.com |
| Mantle | 5000 | https://mantlescan.info | api.mantlescan.info |
| Cronos | 25 | https://cronoscan.com | api.cronoscan.com |
| Polygon ZkEVM | 1101 | https://zkevm.polygonscan.com | api-zkevm.polygonscan.com |
| Linea | 59144 | https://lineascan.build | api.lineascan.build |
| Moonbeam | 1284 | https://moonscan.io | api.moonscan.io |
| Celo | 42220 | https://celoscan.io | api.celoscan.io |
| Scroll | 534352 | https://scrollscan.com | api.scrollscan.com |
| OpBNB | 204 | https://opbnbscan.com | api.opbnbscan.com |
| Moonriver | 1285 | https://moonriver.moonscan.io | api-moonriver.moonscan.io |
| Arbitrum Nova | 42170 | https://nova.arbiscan.io | api-nova.arbiscan.io |
| Blast | 81457 | https://blastscan.io | api.blastscan.io |
| Fraxtal | 252 | https://fraxscan.com | api.fraxscan.com |
| Wemix | 1111 | https://wemixscan.com | api.wemixscan.com |
| Xai | 660279 | https://xaiscan.io | api.xaiscan.io |
| World Chain | 480 | https://worldscan.org | api.worldscan.org |
| Ape | 33139 | https://apescan.io/ | api.apescan.io |
| Kroma | 255 | https://kromascan.com | api.kromascan.com |
| Taiko | 167000 | https://taikoscan.io | api.taikoscan.io |
| Bittorrent | 199 | https://bttcscan.com | api.bttcscan.com |
| Xdc | 50 | https://xdcscan.io | api.xdcscan.io |

Features

- 🔄 Unified API endpoint for multiple blockchain explorers
- ⚖️ API load balancing
- 🔑 API rate limit management
- 🎯 Custom API key support via URL parameters
- 🤖 MCP server for AI assistants to query blockchain data

Installation

From Go

go install github.com/huahuayu/1scan@latest

From Source

```bash

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.