# MetaMask と Rabby のカスタム RPC 設定：URL と Chain ID

> Source: https://docs.blockvectra.com/ja/guides/wallet-custom-rpc/

MetaMask または Rabby に RPC URL、Chain ID、ネイティブ通貨のシンボルを追加し、認証が必要な場合はウォレット専用のキーを使用します。

## 1. カスタム RPC を使う理由

ブロックチェーンのエコシステムでは、コミュニティの基本的な利用や開発者の導入向けに、通常はデフォルトの公開 RPC エンドポイントが提供されています。ただし、公式のネットワークドキュメントでは、これらのエンドポイントのレート制限と利用範囲が明示されています。

* **Robinhood Chain**：
  公式ドキュメントの [Robinhood Chain への接続](https://docs.robinhood.com/chain/connecting)では、公開エンドポイント `https://rpc.mainnet.chain.robinhood.com` にはレート制限があり、本番環境での利用は推奨されないと記載されています（*以下の公開エンドポイントは利用可能ですが、レート制限があるため、本番環境での利用は推奨されません。本番環境ではプロバイダーを使用してください*）。
* **HyperEVM**：
  公式ドキュメントの [レート制限とユーザー制限](https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/rate-limits-and-user-limits)では、公開エンドポイント `rpc.hyperliquid.xyz/evm` に対し、IP 単位で毎分最大 100 件の EVM JSON-RPC リクエストという上限が定められています（*rpc.hyperliquid.xyz/evm に対する EVM JSON-RPC リクエストは毎分最大 100 件*）。

## 2. ウォレットの必須フィールドとネットワークパラメータ

EVM ウォレットでネットワークを追加または編集する際は、次のフィールドが必要です。

1. **ネットワーク名**：ウォレットの画面に表示される、人が読める名称です。
2. **RPC URL**：通信先のエンドポイントです。**API keyは URL パスに配置する必要があります**。`api.blockvectra.com` 上のパス `/v1/{chain}/{api_key}` を使用します。
   ```http
   /v1/{chain}/{api_key}
   ```
   > **重要**：MetaMask や Rabby などのウォレットは、RPC URL フィールドに標準の HTTP(S) URL のみを受け付け、**カスタムリクエストヘッダーには対応していません**（例：`x-api-key: {api_key}`）。そのため、ウォレットの接続では API keyを URL パスに直接指定する必要があります。`{api_key}` の後に末尾のスラッシュを付けないでください。また、未知の `{chain}` を指定したリクエストは HTTP 404 を返します。
3. **Chain ID**：EIP-155 で定義された整数のチェーン識別子です。
4. **通貨シンボル**：チェーンのネイティブガス資産のシンボルです（例：`ETH`、`HYPE`）。
5. **ブロックエクスプローラー URL**：ネットワークのブロックエクスプローラーの主要な Web アドレスです。

### 対応チェーンのネットワークパラメータ一覧

| ネットワーク名 | RPC URL（パスに API key を指定） | チェーン ID | 通貨シンボル | ブロックエクスプローラー URL |
| --- | --- | --- | --- | --- |
| [arb_mainnet](https://blockvectra.com/ja/chains/arb_mainnet/) | `https://api.blockvectra.com/v1/arb_mainnet/{api_key}` | 42161 | [ETH](https://docs.arbitrum.io/build-decentralized-apps/reference/node-providers) | [arbiscan.io](https://arbiscan.io) |
| [base_mainnet](https://blockvectra.com/ja/chains/base_mainnet/) | `https://api.blockvectra.com/v1/base_mainnet/{api_key}` | 8453 | [ETH](https://docs.base.org/docs/network-information/) | [basescan.org](https://basescan.org) |
| [bsc_mainnet](https://blockvectra.com/ja/chains/bsc_mainnet/) | `https://api.blockvectra.com/v1/bsc_mainnet/{api_key}` | 56 | [BNB](https://docs.bnbchain.org/) | [bscscan.com](https://bscscan.com) |
| [Ethereum](https://blockvectra.com/ja/chains/eth_mainnet/) | `https://api.blockvectra.com/v1/eth_mainnet/{api_key}` | 1 | [ETH](https://ethereum.org/) | [etherscan.io](https://etherscan.io) |
| [eth_sepolia](https://blockvectra.com/ja/chains/eth_sepolia/) | `https://api.blockvectra.com/v1/eth_sepolia/{api_key}` | 11155111 | [SepoliaETH](https://ethereum.org/en/developers/docs/networks/#sepolia) | [sepolia.etherscan.io](https://sepolia.etherscan.io) |
| [HyperEVM](https://blockvectra.com/ja/chains/hyperevm_mainnet/) | `https://api.blockvectra.com/v1/hyperevm_mainnet/{api_key}` | 999 | [HYPE](https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/hyperevm) | [hyperscan.com](https://www.hyperscan.com/) |
| [polygon_mainnet](https://blockvectra.com/ja/chains/polygon_mainnet/) | `https://api.blockvectra.com/v1/polygon_mainnet/{api_key}` | 137 | [POL](https://docs.polygon.technology/) | [polygonscan.com](https://polygonscan.com) |
| [Robinhood Chain](https://blockvectra.com/ja/chains/robinhood_mainnet/) | `https://api.blockvectra.com/v1/robinhood_mainnet/{api_key}` | 4663 | [ETH](https://docs.robinhood.com/chain/connecting) | [robinhoodchain.blockscout.com](https://robinhoodchain.blockscout.com) |
| [robinhood_testnet](https://blockvectra.com/ja/chains/robinhood_testnet/) | `https://api.blockvectra.com/v1/robinhood_testnet/{api_key}` | 46630 | [ETH](https://docs.robinhood.com/chain/connecting) | [explorer.testnet.chain.robinhood.com](https://explorer.testnet.chain.robinhood.com) |

> **HyperEVM の読み取り専用という制限**：BlockVectra の HyperEVM エンドポイントは読み取りに対応していますが、トランザクションのブロードキャストは行いません。ウォレットから送信する場合は、eth\_sendRawTransaction に対応した RPC を使用してください。ブロードキャストの詳細は、HyperEVM ガイドの [Foundry または Hardhat でデプロイする](https://docs.blockvectra.com/en/guides/hyperevm-backfill/#deploy-with-foundry-or-hardhat)を参照してください。

パス内の `{chain}` を目的のチェーンのスラッグに置き換えることで、1 つの API keyを対応チェーン全体で使用できます。共有利用枠と URL ルーティングの詳細は、[1 つのキーで複数のチェーンを使うガイド](https://docs.blockvectra.com/en/guides/one-key-many-chains/)を参照してください。

## 3. ウォレットの設定手順

### MetaMask の設定手順

MetaMask の公式ヘルプガイド [カスタムネットワーク RPC の追加方法](https://support.metamask.io/networks-and-sidechains/managing-networks/how-to-add-a-custom-network-rpc/)に基づく手順です。

1. MetaMask のブラウザー拡張機能またはモバイルアプリを開きます。
2. 画面上部のネットワーク選択ドロップダウンをクリックします（または「設定 > ネットワーク」に移動します）。
3. **ネットワークを追加**を選び、下部の**ネットワークを手動で追加**を選択します。
4. 上の表を使ってネットワークの詳細を入力します。
   * **ネットワーク名**：上の表にあるチェーン名を入力します。
   * **新しい RPC URL**：`https://api.blockvectra.com/v1/robinhood_mainnet/{api_key}` など、パスで認証するエンドポイントを入力します（`{api_key}` を実際の API keyに置き換えてください）。
   * **Chain ID**：上の表にある整数の Chain ID を入力します。
   * **通貨シンボル**：上の表にあるネイティブ資産のシンボルを入力します。
   * **ブロックエクスプローラー URL**：上の表にある公式ブロックエクスプローラーのアドレスを入力します（任意）。
5. **保存**をクリックしてネットワークを追加し、そのネットワークに切り替えます。

> **HyperEVM でのトランザクション送信**：BlockVectra の HyperEVM エンドポイントは読み取りに対応していますが、トランザクションのブロードキャストは行いません。ウォレットから送信する場合は、eth\_sendRawTransaction に対応した RPC を使用してください（[HyperEVM のブロードキャストに関する説明](https://docs.blockvectra.com/en/guides/hyperevm-backfill/#deploy-with-foundry-or-hardhat)を参照）。

> **既存ネットワークの編集**：すでに一覧にあるネットワークの RPC エンドポイントを更新するには、「設定 > ネットワーク」に移動し、対象のネットワークを選択して、RPC URL フィールドの BlockVectra URL を編集または追加し、変更を保存します。

### Rabby Wallet の設定手順

Rabby のカスタムネットワークまたはカスタム RPC の設定で、上の表にあるパラメータを入力します。ネットワーク名、RPC URL（パスにキーを含む `https://api.blockvectra.com/v1/{chain}/{api_key}`）、Chain ID、通貨シンボル、ブロックエクスプローラー URL を指定してください。

> **注意**：カスタムネットワークやテストネットを追加する際は、ネットワーク ID の不一致エラーを防ぐため、Chain ID がエンドポイントから返される ID と一致していることを確認してください。

## 4. セキュリティ上の注意と利用量の管理

カスタム RPC を利用する際は、次のセキュリティと課金に関する原則を意識してください。

> \[!WARNING]
> **API keyの漏えいリスク**：RPC URL のパスには API keyが平文で含まれます。ウォレットのネットワーク設定のスクリーンショットを公開チャットやフォーラムで共有したり、使用中のキーを含む URL を公開コードリポジトリやドキュメントにコミットしたりしないでください。

1. **ウォレットのリクエストはアカウントの利用量に計上されます**：
   ウォレットを開く、アカウントを切り替える、資産一覧を更新するといった操作により、JSON-RPC コール（`eth_blockNumber`、`eth_getBalance`、`eth_call` など）がリアルタイムで発生します。これらのリクエストは、呼び出すメソッドの CU 重み付け（[料金ページ](https://blockvectra.com/en/pricing/)を参照）に従って、アカウントの利用枠を消費します。
2. **ウォレットごとに専用の API keyを作成します**：
   [コンソール](https://console.blockvectra.com/login/?next=%2Fkeys%2F)で、ウォレット専用のラベル（例：`metamask-desktop`、`rabby-extension`）を付けた API keyを作成します。これにより、個人用ウォレットの通信を、サーバーアプリケーション、自動化スクリプト、AI エージェントの通信から分離できます。
3. **漏えい時は該当するキーだけを失効させます**：
   ウォレットに設定した API keyが漏えいした疑いがある場合は、コンソールでそのキーを直ちに失効させてください。他の使用中のキーやサービスには影響しません。
   セッションの有効期限が切れた場合やキーを紛失した場合は、プログラムによる登録ガイドの[セッションや API keyを失った場合](https://docs.blockvectra.com/en/guides/programmatic-signup/#lost-your-session-or-api-key)を参照し、Ethereum ウォレットの署名を使って管理権限を取り戻してください。

## 5. 関連リソース

* [過去の状態の制限](https://docs.blockvectra.com/en/guides/evm-historical-state/)：過去の残高やコントラクトの値をリクエストする前に、認証付きの状態取得範囲とキーなしで取得できる履歴を確認してください。ログクエリの範囲には別の制限があります。
* [1 つのキーで複数のチェーンを使うガイド](https://docs.blockvectra.com/en/guides/one-key-many-chains/)：URL ルーティングの詳細なルール、`GET /v1/chains` を使ったプログラムによる情報取得、チェーン間で利用枠を共有する仕組みを説明します。
* [料金とプランの制限](https://blockvectra.com/en/pricing/)：CU 重み付け、スループット容量の補充レート、有料チャージによるアップグレードについて説明します。

## 次のステップ

* [データセット一覧を見る](https://blockvectra.com/en/data/)と、BlockVectra がインデックス化しているすべてのデータセットを確認できます。
* [無料プランと料金を見る](https://blockvectra.com/en/pricing/#free)と、アカウントに含まれる内容を確認できます。
* [コンソールにログイン](https://console.blockvectra.com/login/?next=%2Fkeys%2F)して、API keyを作成します。
