# 在 MetaMask / Rabby 里使用 BlockVectra RPC

> 原文地址: https://docs.blockvectra.com/zh/guides/wallet-custom-rpc/

在 MetaMask、Rabby 等 EVM 钱包中配置自定义 RPC 节点，可以让钱包通过指定的节点服务发起链上交互与状态查询。本文基于各链官方公布的公共 RPC 规则与 BlockVectra 接口规范，说明使用自定义 RPC 的技术背景、配置参数、在 MetaMask 与 Rabby 中的操作步骤以及安全实践。

## 1. 为什么要使用自定义 RPC

各区块链生态通常会提供默认的公共 RPC 端点供开发者与用户测试，但官方文档中均明确声明了公共端点的限速与使用范围：

* **Robinhood Chain**：
  Robinhood Chain 官方文档 [Connecting to Robinhood Chain](https://docs.robinhood.com/chain/connecting) 明确注明，公共端点 `https://rpc.mainnet.chain.robinhood.com` 存在调用频次限制，官方不建议在生产环境中使用（*The following public endpoints are available but are rate-limited and not recommended for production use. For production, use a provider*）。
* **HyperEVM**：
  Hyperliquid 官方文档 [Rate limits and user limits](https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/rate-limits-and-user-limits) 明确规定，针对公共端点 `rpc.hyperliquid.xyz/evm`，每个 IP 地址每分钟最多允许 100 次 EVM JSON-RPC 请求（*Maximum of 100 EVM JSON-RPC requests per minute for rpc.hyperliquid.xyz/evm*）。此外，官方文档 [HyperEVM 概述](https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/hyperevm) 说明该公共端点暂不支持 WebSocket JSON-RPC。

### 钱包查询特点与服务配额

当用户在钱包中切换网络、查看资产或交互 dApp 时，钱包客户端会在后台持续高频向 RPC 节点发送请求，包括但不限于：

* 查询最新区块高度（`eth_blockNumber`）
* 查询原生代币余额（`eth_getBalance`）
* 批量读取代币余额与合约授权（`eth_call`）
* 发起交易前的 Gas 上限估算（`eth_estimateGas`）
* 广播交易后的交易收据轮询（`eth_getTransactionReceipt`）

在严格限制每 IP 每分钟请求次数的公共节点上，连续的操作容易触发 HTTP 429（Too Many Requests）限流错误。

通过 BlockVectra 配置自定义 RPC 时，请求速率遵循你所选套餐的配额上限（例如免费套餐具备接口声明的跨链合计每秒调用上限，每个 API key 具备 `cu_per_sec` 令牌补充速率与 `burst_cu` 突发容量；充值后解除账户级每秒上限，具体计费规则见[定价页](https://blockvectra.com/zh/pricing/)）。

## 2. 钱包所需字段与网络参数

主流 EVM 钱包在添加自定义网络时需要填写以下参数：

1. **网络名称（Network Name）**：在钱包界面中显示的名称。
2. **RPC URL**：节点通信端点。**必须将 API key 放在 URL 路径中**，在 `api.blockvectra.com` 上使用路径：
   ```http
   /v1/{chain}/{api_key}
   ```
   > **重要说明**：MetaMask 与 Rabby 等钱包仅支持输入标准的 HTTP(S) URL 字符串，**不支持自定义请求头**（无法传入 `x-api-key: {api_key}` 头）。因此钱包中必须使用路径携带 Key 的端点形式。URL 末尾不要带斜杠，未知链标识将返回 HTTP 404。
3. **链 ID（Chain ID）**：EIP-155 标准整数链 ID。
4. **货币符号（Currency Symbol）**：该链原生 Gas 代币符号（如 `ETH`、`HYPE`）。
5. **区块浏览器 URL（Block Explorer URL）**：区块链浏览器主页地址。

### 支持链网络参数对照表

以下各链的链名与 Chain ID 均从公开端点 `https://api.blockvectra.com/v1/chains` 动态读取；货币符号与区块浏览器地址接口内未提供，已直接链接到各链官方文档对应出处：

| 网络名称 | RPC URL（路径携带 Key） | 链 ID | 货币符号 | 区块浏览器 URL |
| --- | --- | --- | --- | --- |
| Base | `/v1/base_mainnet/{api_key}` | 8453 | [ETH](https://docs.base.org/docs/network-information/) | [basescan.org](https://basescan.org) |
| BNB Smart Chain | `/v1/bsc_mainnet/{api_key}` | 56 | [BNB](https://docs.bnbchain.org/) | [bscscan.com](https://bscscan.com) |
| 以太坊 | `/v1/eth_mainnet/{api_key}` | 1 | [ETH](https://ethereum.org/) | [etherscan.io](https://etherscan.io) |
| HyperEVM | `/v1/hyperevm_mainnet/{api_key}` | 999 | [HYPE](https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/hyperevm) | [hyperevm.xyz/explorer](https://hyperevm.xyz/explorer) |
| Robinhood Chain | `/v1/robinhood_mainnet/{api_key}` | 4663 | [ETH](https://docs.robinhood.com/chain/connecting) | [robinhoodchain.blockscout.com](https://robinhoodchain.blockscout.com) |

同一个 API key 适用于上方所有支持的链，只需将 URL 路径中的 `{chain}` 替换为对应的链标识，无需为每条链单独申请 key。关于跨链共用余额与限流机制，请参阅[一个 key 切链指南](https://docs.blockvectra.com/zh/guides/one-key-many-chains/)。

## 3. 钱包操作步骤

### MetaMask 操作步骤

按照 MetaMask 官方帮助文档 [How to add a custom network RPC](https://support.metamask.io/networks-and-sidechains/managing-networks/how-to-add-a-custom-network-rpc/) 的说明进行配置：

1. 打开 MetaMask 浏览器插件或移动端应用。
2. 点击应用顶部的网络选择器下拉菜单（或进入「设置」>「网络」）。
3. 选择「添加网络」（Add network），随后选择「手动添加网络」（Add a network manually）。
4. 对照上表填写对应链的参数：
   * **网络名称**：填入上表中对应链的名称。
   * **新的 RPC URL**：填入包含你的 Key 的路径 URL，例如 `https://api.blockvectra.com/v1/robinhood_mainnet/{api_key}`（将 `{api_key}` 替换为你实际的 Key）。
   * **链 ID**：填入上表中对应链的整数链 ID。
   * **货币符号**：填入上表中对应链的原生代币符号。
   * **区块浏览器 URL**：填入官方浏览器地址（可选）。
5. 点击「保存」（Save）完成添加，钱包将自动切换到该网络。

> **修改已有网络的 RPC**：如需替换现有网络的 RPC 提供商，可进入 MetaMask「设置」>「网络」，点击目标网络名称，在「RPC URL」列表中添加或修改端点地址并保存。

### Rabby Wallet 操作步骤

按照 Rabby 帮助与开源仓库规范（详见 [Rabby 官网](https://rabby.io) 与 [RabbyHub 仓库](https://github.com/RabbyHub/Rabby)）：

1. 打开 Rabby 浏览器扩展。
2. 点击界面右下角的「More」（或点击顶部的网络切换按钮进入链管理）。
3. 选择「Add Custom Network」或「Custom RPC」。
4. 依次填写对应链的网络参数：网络名称、RPC URL（在 `api.blockvectra.com` 上使用路径 `/v1/{chain}/{api_key}`）、链 ID、货币符号以及区块浏览器地址。
5. 核对参数后点击确认并保存。

> **提示**：Rabby 具备内置的多链安全规则与针对常见代币的后端索引。添加自定义网络或测试网时，务必保证 Chain ID 与端点返回的真实 ID 一致，否则钱包会提示链 ID 不匹配。

## 4. 安全提示与用量管理

在钱包中使用专有 RPC 服务时，需要注意以下安全与计费规则：

> \[!WARNING]
> **API Key 泄露防护**：RPC URL 路径中包含了你的 API key 明文。切勿将包含该 URL 的钱包网络设置界面截图分享到公共社区，也不要将含有真实 Key 的 RPC URL 提交至公开代码仓库或配置文件中。

1. **钱包请求会计入用量**：
   钱包打开、切换标签页或刷新资产时发起的所有读取方法（如 `eth_blockNumber`、`eth_getBalance`、`eth_call`）均会作为真实请求发送至 BlockVectra 节点，并根据所调用方法的 CU 权重（详见[定价页](https://blockvectra.com/zh/pricing/)）扣减账户额度或计入速率上限。
2. **为钱包单独创建专用 API Key**：
   建议在[控制台](https://console.blockvectra.com/zh/login/?next=%2Fzh%2Fkeys%2F)中为钱包创建一把独立的 API key（例如添加标签 `wallet-metamask` 或 `wallet-rabby`），与开发脚本、后端服务器使用的 Key 分开管理。
3. **独立吊销与泄露应急**：
   若怀疑钱包端点配置发生泄露，可直接在控制台的密钥管理列表中单独删除或吊销该 Key，无需废弃整个账户或影响其他正在运行的应用。
   若会话或 Key 丢失，可参考[程序化开户指南中的「会话或 key 丢了怎么办」小节](https://docs.blockvectra.com/zh/guides/programmatic-signup/#会话或-key-丢了怎么办)，通过开户钱包重新签名恢复控制权。

## 5. 相关资源

* [一个 key 切链指南](https://docs.blockvectra.com/zh/guides/one-key-many-chains/)：了解多链 URL 规范、公开链发现端点与跨链共享额度。
* [查看免费额度与定价](https://blockvectra.com/zh/pricing/)：了解各套餐的方法权重、速率补充以及充值升级规则。

## 下一步

* [浏览数据集目录](https://blockvectra.com/zh/data/)，查看 BlockVectra 索引的全部数据集。
* [查看免费额度与定价](https://blockvectra.com/zh/pricing/#free)，确认账户可用的方案。
* [登录控制台](https://console.blockvectra.com/zh/login/?next=%2Fzh%2Fkeys%2F)创建 API key。
