# Base RPC URL：キー不要のアクセス、curl と viem の例

> Source: https://docs.blockvectra.com/ja/guides/base/

まずは以下の Base メインネット公開 RPC URL を使用して、API key なしでチェーン ID を読み取ってください。対応メソッドおよび IP ごとの制限については [Base チェーンページ](https://blockvectra.com/en/chains/base_mainnet/) を確認してください。そのチェーンで許可されており `public.methods` に含まれないメソッドを呼び出す場合は、キーを使用します。

```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 は、パスによるキー認証とリクエストヘッダー認証（`x-api-key`）の両方に対応しています。

| パラメータ / エンドポイント | 値 / テンプレート | 認証方式 |
|---|---|---|
| チェーン ID（EIP-155） | `8453` | — |
| JSON-RPC（パスに API key を指定） | `POST https://api.blockvectra.com/v1/base_mainnet/{api_key}` | URL パスに API key を指定 |
| JSON-RPC（ヘッダーに API key を指定） | `POST https://api.blockvectra.com/v1/base_mainnet` | ヘッダー x-api-key: {api_key} |
| Data API ベース URL | `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 (Header)**

`x-api-key` リクエストヘッダーを使用して EIP-155 チェーン 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 (Path)**

URL パスに API key を渡して最新のブロック番号を照会します：

```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 パスでキーを渡すこともできます：

```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`、および 16 進数エンコードされた `result` を含むオブジェクトを返します（`eth_chainId` は 16 進数エンコードされたチェーン ID を返し、`eth_blockNumber` は最新のブロック高を返します）。
* **許可されていないメソッド**：ネットワークの許可メソッドに含まれないメソッドをリクエストすると、JSON-RPC エラーコード `-32601`（`method not available`、課金対象外）が返されます。
* **保持期間外の照会**：状態保持ウィンドウより前の履歴状態をリクエストすると、JSON-RPC エラーコード `-32011`（課金対象外）が返されます。
* **API 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/en/chains/)

## ブロックチェーン Data API

リアルタイムの値：`GET /v1/chains`（`data`）。

### Blockchain Data API のステータス

- **利用可能**: Base では Blockchain Data API を利用できます。対応するデータセットはデータセットカタログで確認してください。 [データセットカタログを見る](https://blockvectra.com/ja/data/)

## 利用開始と API key の取得

新規アカウントは登録時に 30,000,000 CU を受け取れます。クレジットカードは不要です。

* **Web コンソール**：イーサリアムウォレットの署名で登録し、[コンソール](https://console.blockvectra.com/login/?next=%2Fkeys%2F)で API key を生成します。セットアップの詳細については、[クイックスタートガイド](https://docs.blockvectra.com/en/quickstart/)を参照してください。
* **プログラムによる登録**：自律型 AI エージェント、自動化スクリプト、CI パイプラインは、ブラウザーを使わずにイーサリアムウォレットの署名（EIP-191）を使用してログインし、API key をプロビジョニングできます。[プログラムによる登録ガイド](https://docs.blockvectra.com/en/guides/programmatic-signup/)に従ってください。
* **AI エージェント**：自律型 AI エージェントは、公式の Model Context Protocol（MCP）サーバーを使用して Base の機能を探索できます。[AI エージェントを BlockVectra に接続する](https://docs.blockvectra.com/en/guides/ai-agents/)を参照してください。
* **制限の引き上げ**：チャージを行うと、アカウント全体の 1 秒あたりの呼び出し回数制限が解除されます。各キーには引き続き Compute Unit（CU）レート制限およびバースト制限が適用されます。現在のレートと課金単位については、[料金ページ](https://blockvectra.com/en/pricing/)を参照してください。

## 関連ガイドとリソース

* **Base 開発者向けドキュメント**：Base におけるネットワーク仕様、Gas メカニクス、コントラクトについては、公式の [Base ドキュメント](https://docs.base.org)を参照してください。
* **ウォレットのカスタム RPC**：MetaMask や Rabby で Base のカスタム RPC エンドポイントを設定するには、[ウォレットカスタム RPC ガイド](https://docs.blockvectra.com/en/guides/wallet-custom-rpc/)を参照してください。
* **トランザクションシミュレーション**：ブロードキャスト前にトランザクションの実行をテストし状態変化を評価するには、[トランザクションシミュレーションガイド](https://docs.blockvectra.com/en/guides/simulate-transactions/)の `eth_simulateV1` を参照してください。

## 次のステップ

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