# Base RPC URL：免 key 存取、curl 與 viem 範例

> Source: https://docs.blockvectra.com/zh-hant/guides/base/

先使用下方 Base 主網公開 RPC URL，無需 API key 即可讀取 chain ID。支援的方法與每 IP 限制請見 [Base 鏈頁面](https://blockvectra.com/zh-hant/chains/base_mainnet/)；若需要 `public.methods` 之外、該鏈允許的方法，請使用 key。

```bash
curl -sS "https://api.blockvectra.com/v1/base_mainnet/public" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]}'
```

## 網路資訊與端點

每個送往 Base 的請求都會在 URL 路徑中以識別代號 `base_mainnet` 明確指定目標網路。JSON-RPC 同時支援路徑式 key 驗證與請求標頭驗證（`x-api-key`）。

| 參數 / 端點 | 取值 / 範本 | 驗證方式 |
|---|---|---|
| Chain ID（EIP-155） | `8453` | — |
| JSON-RPC（路徑攜帶 Key） | `POST https://api.blockvectra.com/v1/base_mainnet/{api_key}` | URL 路徑中傳入 API key |
| JSON-RPC（請求標頭攜帶 Key） | `POST https://api.blockvectra.com/v1/base_mainnet` | 傳入 x-api-key: {api_key} 請求標頭 |
| Data API 基址 | `GET https://api.blockvectra.com/v1/data/base_mainnet/…` | 傳入 x-api-key: {api_key} 請求標頭 |
| 公開狀態端點 | `GET https://api.blockvectra.com/v1/status` | 無需驗證（公開） |

## 直接 curl 與 viem 範例

你可以直接使用 curl 或 viem 等 web3 用戶端程式庫發起 JSON-RPC 呼叫。請在環境變數 `BLOCKVECTRA_API_KEY` 中設定你的 API key：

**curl (標頭)**

使用 `x-api-key` 請求標頭查詢 EIP-155 chain ID：

```bash
curl -s "https://api.blockvectra.com/v1/base_mainnet" \
  -H "Content-Type: application/json" \
  -H "x-api-key: $BLOCKVECTRA_API_KEY" \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]}'
```


  **curl (路徑)**

將 API key 放在 URL 路徑中查詢最新區塊編號：

```bash
curl -s "https://api.blockvectra.com/v1/base_mainnet/$BLOCKVECTRA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'
```


  **TypeScript (viem)**

使用 viem 的 `createPublicClient` 與官方 `base` 鏈定義連線：

```ts
import { createPublicClient, http } from "viem";
import { base } from "viem/chains";

const client = createPublicClient({
  chain: base,
  transport: http("https://api.blockvectra.com/v1/base_mainnet", {
    fetchOptions: {
      headers: {
        "x-api-key": process.env.BLOCKVECTRA_API_KEY!,
      },
    },
  }),
});

const blockNumber = await client.getBlockNumber();
console.log("Current block number on Base:", blockNumber);
```

你也可以在傳輸 URL 路徑中傳入 key：

```ts
const client = createPublicClient({
  chain: base,
  transport: http(`https://api.blockvectra.com/v1/base_mainnet/${process.env.BLOCKVECTRA_API_KEY}`),
});
```

完整入門範本：[blockvectra/multichain-viem](https://github.com/blockvectra/multichain-viem)


### 回應結構

回應遵循 JSON-RPC 2.0 規範：

* **成功**：傳回包含 `jsonrpc: "2.0"`、相符的整數 `id` 及十六進位編碼 `result` 的物件（`eth_chainId` 傳回十六進位編碼的 chain ID；`eth_blockNumber` 傳回最新區塊高度）。
* **不允許的方法**：請求該網路允許方法之外的方法，會傳回 JSON-RPC 錯誤碼 `-32601`（`method not available`，不計費）。
* **超出視窗的查詢**：早於狀態保留視窗的歷史狀態請求會傳回 JSON-RPC 錯誤碼 `-32011`（不計費）。
* **缺少 API key**：省略 key 會傳回 HTTP 401 與 JSON-RPC 錯誤碼 `-32024`（`missing_api_key`，不計費）。
* **無效參數**：格式錯誤的請求參數會傳回 JSON-RPC 錯誤碼 `-32602`（不計費）。

## 能力與方法策略

即時數值：`GET /v1/chains`（`methods`、`max_logs_block_range`、`state_window_blocks`）。

### 網路參數與呼叫限制

- **eth_getLogs 單次區塊跨度**: 單次最多 1000 個區塊
- **歷史狀態視窗**: 最近 10000 個區塊（超出視窗回傳 -32011）
- **執行追蹤（debug_trace*）**: 暫不支援

各鏈允許的方法見 [支援的鏈](https://docs.blockvectra.com/zh/chains/)

## 區塊鏈 Data API

即時數值：`GET /v1/chains`（`data`）。

### Blockchain Data API 狀態

- **已開放**: Base 主網的 Blockchain Data API 現已開放。支援的資料集與介面請參閱資料集目錄。 [瀏覽資料集目錄](https://blockvectra.com/zh-hant/data/)

## 開始使用與 API key

新帳戶註冊即得 30,000,000 CU，無需信用卡。

* **Web 控制台**：透過以太坊錢包簽名註冊，並在[控制台](https://console.blockvectra.com/login/?next=%2Fkeys%2F)產生 API key。設定詳情請參閱[快速入門指南](https://docs.blockvectra.com/zh-hant/quickstart/)。
* **程式化註冊**：自主 AI Agent、自動化指令碼與 CI 管線可使用以太坊錢包簽名（EIP-191）在無瀏覽器的情況下登入並佈建 API key。請參閱[程式化註冊指南](https://docs.blockvectra.com/en/guides/programmatic-signup/)。
* **AI Agent**：自主 AI Agent 可使用官方 Model Context Protocol (MCP) 伺服器探索 Base 能力。請參閱[將 AI Agent 連線至 BlockVectra](https://docs.blockvectra.com/zh-hant/guides/ai-agents/)。
* **升級限制**：儲值後，帳戶整體的每秒呼叫次數限制將被移除；每個 key 仍受計算單位（CU）速率與突發限制約束。有關目前的費率與計費單位，請參閱[定價頁面](https://blockvectra.com/zh-hant/pricing/)。

## 相關指南與資源

* **Base 開發者文件**：關於 Base 的網路規格、gas 機制與合約，請參閱官方 [Base 文件](https://docs.base.org)。
* **錢包自訂 RPC**：使用[錢包自訂 RPC 指南](https://docs.blockvectra.com/zh-hant/guides/wallet-custom-rpc/)在 MetaMask 與 Rabby 中為 Base 設定自訂 RPC 端點。
* **交易模擬**：在廣播前使用 `eth_simulateV1` 測試交易執行並評估狀態變化，請參閱[交易模擬指南](https://docs.blockvectra.com/en/guides/simulate-transactions/)。

## 下一步

* [瀏覽資料集目錄](https://blockvectra.com/zh-hant/data/)，查看 BlockVectra 索引的全部資料集。
* [查看免費方案與定價](https://blockvectra.com/zh-hant/pricing/#free)，確認你的帳戶包含的內容。
* [登入控制台](https://console.blockvectra.com/login/?next=%2Fkeys%2F)建立 API key。
