mcpField
A
Altscan explorers

Altscan explorers

リモート
altscan.io金融データ31 日前に更新
リポジトリ公式サイト

Altscan explorers について

Altscanは、1つのコードベースからBNB ChainとEthereumのエクスプローラーを提供するオープンソースのマルチチェーン基盤です。ブロック、トランザクション、アドレス、トークン、分析機能、REST APIを利用する開発者やチェーンデータの閲覧者向けです。

主な機能

  1. 01ブロック・トランザクション・アドレス・トークンの閲覧
  2. 02アドレス・トランザクションハッシュ・ブロック番号の検索
  3. 03DEX取引・大口送金・ガスデータの確認
  4. 04類似トークンの表示とコントラクト状態の確認
  5. 05REST API・Webhook・CSVエクスポート

活用シーン

  1. 01BNB ChainまたはEthereumの取引とトークン送金の確認
  2. 02アドレスの保有資産・NFT・履歴の確認
  3. 03APIでオンチェーンデータを照会し、アドレスの取引を出力

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://altscan.io/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

詳細

BNBScan のホームページ:最新の BNB Chain ブロックをリアルタイムで表示するテープ。各バーの幅はブロックのトランザクション数、塗りつぶし部分は使用されたガス量を表します

Altscan

オープンソースのマルチチェーンブロックエクスプローラープラットフォームです。
1 つのコードベースで、現在はBNB ChainとEthereumの独立したエクスプローラーを提供しており、今後さらにチェーンを追加できるように構築されています。
Next.js 15、Drizzle ORM、ethers.js を採用しています。Measurable Data Token (MDT)がメンテナンスしています。

altscan.io  |  bnbscan.com  |  ethscan.io

CI CodeQL 最新リリース ライセンス:AGPL v3 Next.js 15 PR を歓迎します


これは何ですか?

Altscanは、オープンソースのマルチチェーンブロックエクスプローラープラットフォームです。1 つのコードベースで、現在は 2 つの独立したエクスプローラー、BNBScan(bnbscan.com、BNB Chain)とEthScan(ethscan.io、Ethereum)を提供しており、今後さらにチェーンを追加できるように設計されています。これらは BscScan、Etherscan、Binance、Ethereum Foundation から完全に独立しており、ブロック、トランザクション、アドレス、トークン、オンチェーンアクティビティを快適かつ高速に閲覧できます。

CHAIN環境変数 1 つで、デプロイ先が提供するチェーンを選択できます。フロントエンド、インデクサー、スキーマは共通です。

スクリーンショット

EthScan のホームページ(ダークモード)ブロック
リアルタイムの Ethereum ブロックテープを表示する、ダークモードの EthScan ホームページBNB Chain のブロックページ:チェーンテープ上でブロックを囲んで表示し、そのトランザクションを 1 件ずつバーで描画しています
トランザクションアドレス
Ethereum のスワップを、ブロックのトランザクション欄の上に 1 行で要約しています保有資産を先頭に表示し、トランザクションを台帳形式で描画する BNB Chain のアドレスページ
トークンステータスページ
BNB Chain 上の USDT トークンページ。市場データと上位保有者を表示していますstatus.altscan.io。両エクスプローラーの稼働時間、ブロックの遅延、応答時間を追跡します

スマートフォン向けレイアウト:BNBScan のホームページ、ダークモードの EthScan トランザクションページ、BNBScan のアドレスページ

2026 年 10 月 12 日に本番環境から取得しました。スポンサー枠はオフにしてあります。

機能

エクスプローラー機能
  • ブロックテープ — ホームページおよびブロック、トランザクション、アドレス、分析ページに、最新のブロックをライブ表示します(幅はトランザクション数、塗りつぶしは使用ガス量を表します)
  • ブロック — バリデーター、ガス、トランザクション数を含む最新のブロックを表示します。各ブロックページにはそのブロックのトランザクションが一覧表示されます
  • トランザクション — 発生した内容の概要、手数料の内訳、ログ、トークンと NFT の転送を1行で表示します。トレースエンドポイントを設定している場合は内部トランザクションも表示されます(デフォルトでは無効)
  • アドレス — 残高と追跡対象トークンの保有状況、台帳形式のトランザクション履歴、トークン転送、NFT を表示します
  • トークン — 市場データ、保有者、転送を含む ERC-20 / BEP-20 ページを表示します。類似文字(ホモグリフ)を使ったトークンにはラベルが付きます
  • 検索 — アドレス、トランザクションハッシュ、ブロック番号、トークン名またはシンボルを検索します
分析
  • DEX 取引 — Uniswap V2 形式のスワップを表示します(BNB Chain では PancakeSwap V2、Ethereum では Uniswap V2)。V3 形式のプールはインデックス化されません
  • クジラトラッカー — 過去1時間、過去1日、または保持期間全体における、ネイティブトークン、ラップドトークン、ステーブルコインの大口転送を表示します
  • ガストラッカー — 最近のブロックのパーセンタイルに基づいて、低速、標準、高速のガス価格を表示します
  • ネットワークチャート — トランザクション数、生成されたブロック数、(Ethereum では)平均ベースフィーを表示します。インデックスに丸3日分のデータが蓄積されるまでは、時間単位で表示します
  • バリデーター(BNB Chain)— 投票権、コミッション、過去24時間に生成されたブロック数とともに、バリデーターセットを表示します
開発者ツール
  • REST API — v1 クエリ API、ウォレットでメッセージに署名して発行するオプションの API キー、Webhook を提供します
  • CSV エクスポート — アドレスについてローカルでインデックス化された最新の1,000件のトランザクションをエクスポートします
  • コントラクトのステータス — コントラクトが Sourcify で検証済みかどうかを表示します。sourcify.dev で新しいソースを検証できます
その他
  • ダークモードはシステム設定に連動し、スマートフォン向けにレイアウトされています
  • ウォッチリスト — ブラウザーにアドレスを保存します(アカウント不要。データがデバイスの外に送信されることはありません)
  • ネットワーク切り替え — もう一方のチェーンに対応する姉妹エクスプローラーへのリンクを表示します
  • ステータスページ — status.altscan.io で、ホストされているエクスプローラーの稼働時間、ブロックの遅延、応答時間を確認できます

アーキテクチャ

altscan/
├── apps/
│   ├── explorer/         Unified Next.js 15 frontend + API routes
│   │                     CHAIN=bnb → bnbscan.com
│   │                     CHAIN=eth → ethscan.io
│   ├── indexer/          Unified block indexer (direct polling loop)
│   │                     CHAIN=bnb → indexes BNB Chain
│   │                     CHAIN=eth → indexes Ethereum
│   ├── status/           Hono status page for the hosted explorers
│   │                     Polls /api/health on bnbscan.com and ethscan.io
│   ├── altscan-site/     altscan.io umbrella site (Astro on Cloudflare Workers)
│   └── admin/            Operator console behind Cloudflare Access (Astro on Cloudflare Workers)
├── packages/
│   ├── chain-config/     getChainConfig() — chain-specific config
│   ├── db/               Drizzle ORM schema + Postgres client
│   ├── explorer-core/    Shared utils (rate limiting, formatting, Redis cache)
│   ├── providers/        Third-party data adapters (Moralis) and their spend budgets
│   ├── settings-schema/  Runtime settings shared by the explorer and the admin console
│   └── types/            Shared TypeScript types
├── render.yaml           Render blueprint for the hosted explorers
├── docker-compose.yml    Self-host stack: Postgres, Redis, indexer, explorer
├── turbo.json            Turborepo pipeline config
└── pnpm-workspace.yaml
技術スタック
レイヤー技術
フロントエンドNext.js 15 (App Router)、React 19、Tailwind CSS 3
バックエンドNext.js API ルート、Hono(ステータスページ)
データベースPostgreSQL(Drizzle ORM 経由)
インデクサーethers.js、JSON-RPC(ジョブキューを使用しない直接ポーリングループ)
キャッシュRedis(レート制限、キャッシュ、Moralis CU 台帳)
エッジサイトCloudflare Workers 上の Astro(altscan.io、管理コンソール)
モノレポpnpm + Turborepo
ホスティングRender.com(Web サービス + ワーカー + Postgres + Redis)
仕組み
  1. インデクサーはチェーンの JSON-RPC エンドポイントに接続し、新しいブロックをポーリングして、ブロック、トランザクション、トークンのデータを Drizzle ORM 経由で Postgres に書き込みます。
  2. エクスプローラーは ISR(インクリメンタル静的再生成)を使用して Next.js フロントエンドを提供します。各ページは独自のスケジュール(45秒から5分)で再検証されるため、サーバーに負荷をかけずにデータを最新の状態に保てます。検索など、リクエストに依存するページはリクエストごとにレンダリングされます。
  3. チェーン設定パッケージでチェーン固有の差異(ブロック時間、通貨、テーマカラー、RPC URL、機能フラグ)を一元管理し、両方のチェーンで同じコードを実行できるようにします。
  4. ステータスページは、30秒ごとに2つのホスト済みエクスプローラーの /api/health エンドポイントをポーリングし、24時間および30日間にわたる稼働時間、ブロックの遅延、応答時間を個別に監視します。監視対象は apps/status/src/server.ts で固定されており、Docker スタックにも Render ブループリントにも含まれません。

はじめに

独自のエクスプローラーを実行する(Docker)
git clone https://github.com/heathermhuang/altscan.git
cd altscan
cp .env.docker.example .env
docker compose up -d

http://localhost:3000 を開きます。Postgres、Redis、インデクサー、エクスプローラーが起動します。 起動時の設定は不要で、インデクサーは初回起動時に独自のスキーマを作成します。 Ethereum を使用する場合は、.env に CHAIN=eth を設定し、--build を付けて再実行します。

Render へのデプロイ、データ保持の調整、制限事項を含む完全なガイド: docs/SELF_HOSTING.md。

Docker を使わずにローカルで開発する
前提条件
  • Node.js 22 — CI と Docker イメージで使用されるバージョンです
  • pnpm 10 — package.json で固定されています。corepack enable を実行すると正確なバージョンが使用されます
  • PostgreSQL 16
  • Redis 7 — 任意です。REDIS_URL がない場合、レート制限とキャッシュはプロセスごとのメモリにフォールバックします
インストール
# Clone the repo
git clone https://github.com/heathermhuang/altscan.git
cd altscan

# Install dependencies
pnpm install

# Start Postgres from the Docker stack (localhost:5432; user, password and database all "altscan")
docker compose up -d postgres

# Set up the explorer environment (defaults match the local Docker Postgres)
cp apps/explorer/.env.example apps/explorer/.env.local

# Start the BNB explorer
CHAIN=bnb NEXT_PUBLIC_CHAIN=bnb pnpm --filter @altscan/explorer dev

BNB エクスプローラーは http://localhost:3000 で利用できます。インデクサーは初回起動時にデータベーススキーマを作成するため、データを参照する前に、以下の手順で一度起動してください。空のデータベースに対してエクスプローラーだけを起動しても、読み取るテーブルがありません。pnpm dev は Turborepo を通じて、エクスプローラー、インデクサー、ステータスページ、2 つの Astro サイトを含むすべてのアプリを一度に起動します。

特定のチェーンを実行する
# BNB Chain explorer only
CHAIN=bnb NEXT_PUBLIC_CHAIN=bnb pnpm --filter @altscan/explorer dev

# Ethereum explorer only
CHAIN=eth NEXT_PUBLIC_CHAIN=eth pnpm --filter @altscan/explorer dev -p 3001

# BNB indexer only — build the packages it imports first (see below)
pnpm --filter @altscan/db build && pnpm --filter @altscan/chain-config build && pnpm --filter @altscan/explorer-core build && pnpm --filter @altscan/providers build
CHAIN=bnb pnpm --filter @altscan/indexer dev

# Status page only (monitors the hosted sites)
pnpm --filter @altscan/status dev

CHAIN はサーバーを制御します。NEXT_PUBLIC_CHAIN はクライアントバンドルに埋め込まれるため、両方に同じチェーンを設定してください。インデクサーは環境変数または apps/indexer/.env から設定を読み込みます。少なくとも DATABASE_URL(または ETH_DATABASE_URL)、チェーンの RPC URL、チェーンの最新ブロック付近に設定した START_BLOCK が必要です。組み込みの開始位置は数百万ブロック前です。

エクスプローラーはワークスペースパッケージをソースからコンパイルしますが、インデクサーはビルド済みの dist/ 出力を読み込みます。この出力はコミットされていないため、クローン後に一度ビルドし、変更を加えた後も再度ビルドしてください。

環境変数

デプロイに必要な変数は次のとおりです。apps/explorer/.env.example には任意のプロバイダー上限値が記載されており、docs/SELF_HOSTING.md ではインデクサーのデータ保持とディスク設定について説明しています。

変数必須説明
CHAINはいbnb または eth — 提供・インデックスするチェーンを選択します
NEXT_PUBLIC_CHAINエクスプローラーCHAIN と同じ値です。ビルド時にクライアントコンポーネントが読み込みます
DATABASE_URLCHAIN=bnbPostgreSQL 接続文字列(BNB Chain)
ETH_DATABASE_URLCHAIN=ethPostgreSQL 接続文字列(Ethereum)
BNB_RPC_URLCHAIN=bnbBSC JSON-RPC エンドポイント。フェイルオーバー用にカンマ区切りのリストも指定できます
ETH_RPC_URLCHAIN=ethEthereum JSON-RPC エンドポイント。フェイルオーバー用にカンマ区切りのリストも指定できます
REDIS_URL推奨Redis 接続文字列です。指定しない場合、レート制限とキャッシュはプロセスごとになります
MORALIS_API_KEYいいえ残高と NFT の補完に使用する Moralis API
ADMIN_SECRETいいえ/api/admin/* エンドポイント用の Bearer トークンです。未設定の場合、すべてのリクエストが拒否されます
GA_MEASUREMENT_IDいいえGoogle Analytics 測定 ID です。未設定の場合、分析スクリプトは読み込まれません
BINANCE_REF_CODEいいえスポンサー付き Binance 掲載用の紹介コードです。未設定の場合、掲載は表示されません
無料の RPC エンドポイント

有料の RPC プロバイダーを使わずに始められます。

チェーン無料エンドポイント
BNB Chainhttps://bsc-dataseed1.binance.org/
Ethereumhttps://ethereum-rpc.publicnode.com

これらは Docker スタックのデフォルトです。どちらも過去のブロックに対する eth_getBlockReceipts を提供しており、インデクサーはこの機能に依存しています(2026 年 10 月に確認)。ほかのエンドポイントを利用する場合も、同じ方法で確認してください。数千ブロック前のブロックのレシートをリクエストしてから利用しましょう。公開 RPC の中には、チェーンの最新ブロックには応答してもこのメソッドに対応していないものや、このメソッドに対して空のリストを返すものがあります。インデクサーは、トランザクションを網羅していないレシートを含むブロックを拒否するため、どちらの場合も処理を進められません。また、無料プランによっては JSON-RPC のバッチサイズに上限があります。eth.drpc.org の無料プランでは 3 件を超えるバッチが拒否されるため、利用する場合はインデクサーで RPC_BATCH_MAX_COUNT=1 を設定してください。

本番環境では、有料の RPC プロバイダーを使用してください。無料エンドポイントは、インデクサーの負荷がかかるとレート制限されます。

API

どちらのエクスプローラーも v1 REST API を公開しています。いずれかのサイトの /api-docs にエンドポイントのリファレンスがあり、/developer ではウォレットでメッセージに署名して API キーを発行する方法を確認できます。キーは任意です。キーなしの呼び出しは IP アドレス単位でレート制限されます。

# Example: query transactions for an address
curl -X POST https://bnbscan.com/api/v1/query \
  -H "X-API-Key: bnbs_..." \
  -H "Content-Type: application/json" \
  -d '{"entity":"transactions","filter":{"address":"0x..."}}'

テスト

pnpm test

すべてのワークスペースで Vitest スイートを実行します。実際の Postgres または Redis を必要とするスイートは、該当する環境変数が設定されていない限りスキップされます。対象のスイートと実行方法はCONTRIBUTING.mdに記載されています。CI では、2 つの保持パーティションスイートを除くすべてのスイートに加え、lint、インデクサーと管理コンソールの型チェック、エクスプローラーの本番ビルドを実行します。

デプロイ

ホスト型エクスプローラーは、render.yaml を使って Render.com 上で稼働しています。各チェーンにつき、Web サービスとインデクサーワーカーが 1 つずつあり、Postgres と Redis を使用します。Docker または Render で独自に実行するには、docs/SELF_HOSTING.md に従ってください。

データ保持

インデクサーは 6 時間ごとにデータ保持処理を実行します。RETENTION_DAYS(デフォルトは 7 日)を過ぎると、ログ、DEX 取引、ガス履歴を削除し、各トランザクションの入力データを削除します。入力データは必要に応じて RPC から再取得されます。トランザクション自体は引き続きクエリできます。COMPACT_RETENTION_DAYS も設定しない限り、トランザクション、トークン転送、ブロックは永久に保持されるため、ブロック履歴の上限を決めるのはこの設定です。addresses テーブルは一切削除されず、チェーンの進行に伴って増加し続けます。docs/SELF_HOSTING.mdを参照してください。

手動でプルーニングするエンドポイントもあります。これは days より古い行を(トランザクションやブロックも含めて)行全体ごと削除し、その後 VACUUM を実行します。まずドライランを実行してください。

curl -X POST "https://your-explorer.example/api/admin/db-prune?days=7&dry=true" \
  -H "Authorization: Bearer $ADMIN_SECRET"

既知の制限事項

  • ジェネシスアーカイブではありません — インデクサーは開始ブロックから前方に進みます。過去のアドレス履歴やトークン履歴は、ローカルでインデックス化するのではなく、プロバイダーから必要に応じて取得してキャッシュします。完全な履歴アーカイブには別のアーキテクチャが必要です。
  • 詳細な履歴の取得には Moralis キーが必要です — キーがない場合、アドレス履歴はローカルでインデックス化されたブロックに限られ、保有者数は注意書き付きの推定値に切り替わります。これが唯一のサードパーティ製商用依存関係です。
  • 最新の保有者データは Moralis から取得します — インデクサーの処理性能を高めるため、ブロックごとの保有者追跡は無効になっています。そのため、ローカルに保存された保有者数は更新されないスナップショットであり、UI では「indexed holders」と表示されます。最新の合計数と上位保有者は Moralis から取得します。キーがない場合、保有者リストは最近の送金から算出した推定値となり、注意書きが表示されます。
  • 1 回のデプロイで対応するチェーンは 1 つです — NEXT_PUBLIC_CHAIN はビルド時にクライアントバンドルへ埋め込まれるため、チェーンの切り替えには再起動だけでなく再ビルドが必要です。
  • 対応チェーンは 2 つです — BNB Chain と Ethereum に対応しています。現在、3 つ目のチェーンを追加するには設定変更ではなくコードの変更が必要です。
  • コントラクト検証は Sourcify のみに対応しており、エクスプローラーはソースを受け付けるのではなく、Sourcify の情報を読み取ります。
  • 正式なドメインとネットワーク切り替え機能の遷移先は、チェーンごとにコードで定義されています(packages/chain-config)。そのため、公開フォークではここを編集します。分析機能と紹介広告は、設定しない限り無効です。docs/SELF_HOSTING.md をご覧ください。

コントリビュート

コントリビュートを歓迎します。開発環境のセットアップ、CHAIN モデル、プルリクエストの規約については、CONTRIBUTING.md と 行動規範 をお読みください。

  1. リポジトリをフォークします
  2. フィーチャーブランチを作成します:git checkout -b feat/my-feature
  3. 変更を加え、テストを追加します
  4. CONTRIBUTING.md に記載されているチェックを実行します
  5. main を対象にプルリクエストを送信します

初めてコントリビュートする方は、コントリビューターライセンス契約 に同意するため、最初のプルリクエストで CONTRIBUTORS.md に名前を追加してください。ご自身の成果物の所有権は保持できます。CLA はライセンス付与であり、著作権の譲渡ではありません。また、これにより以下で説明する商用ライセンスを提供できます。CI チェックで名前が記載されていることを確認します。

セキュリティ上の脆弱性を見つけましたか? セキュリティポリシー に従ってください。公開の Issue は作成しないでください。

ライセンス

AGPL-3.0 に基づくオープンソース — OSI 承認のライセンスです。誰でも、いつまでも無料で利用できます:

  • 実行する — 商用利用や有料サービスを含め、あらゆる目的に利用できます
  • フォークする — 変更を加え、フォークを配布できます
  • 関連サービスを販売する — ホスティング、サポート、コンサルティング、マネージドデプロイメント、RaaS など
  • 付与された権利は取り消し不能です — 公開済みのリリースには AGPL-3.0 が適用され続け、これを取り消すことはできません

AGPL で求められることは 1 つだけです。Altscan を変更し、ネットワーク経由で他の人に提供する場合、そのユーザーにも変更したソースを提供してください。変更せずに実行する場合や、変更を社内にとどめる場合は、何も提供する必要はありません。

AGPL コードを利用できない組織や、保証・サポート条件が必要な組織向けに、商用ライセンスも用意しています。対象範囲と、ソース公開型の代替ライセンスとの条件の比較については、LICENSING.md をご覧ください。

© Measurable Data Token (MDT)。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。