# Base RPC URL: truy cập không cần key, ví dụ curl và viem

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

Bắt đầu với RPC URL công khai của Base mainnet bên dưới để đọc chain ID mà không cần API key. Kiểm tra các phương thức được hỗ trợ và giới hạn theo IP trên [trang chuỗi Base](https://blockvectra.com/vi/chains/base_mainnet/); dùng key cho các phương thức mà chuỗi cho phép nằm ngoài `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":[]}'
```

## Thông tin mạng và endpoint

Mỗi yêu cầu tới Base xác định rõ mạng đích trong đường dẫn URL bằng slug `base_mainnet`. JSON-RPC hỗ trợ cả xác thực bằng key trong đường dẫn và xác thực qua header yêu cầu (`x-api-key`).

| Tham số / Endpoint | Giá trị / Mẫu | Xác thực |
|---|---|---|
| Chain ID (EIP-155) | `8453` | — |
| JSON-RPC (key trên đường dẫn) | `POST https://api.blockvectra.com/v1/base_mainnet/{api_key}` | API key trong đường dẫn URL |
| JSON-RPC (key trong header) | `POST https://api.blockvectra.com/v1/base_mainnet` | Header x-api-key: {api_key} |
| Gốc Data API | `GET https://api.blockvectra.com/v1/data/base_mainnet/…` | Header x-api-key: {api_key} |
| Trạng thái công khai | `GET https://api.blockvectra.com/v1/status` | Không xác thực (công khai) |

## Ví dụ gọi trực tiếp bằng curl và viem

Bạn có thể thực hiện lệnh gọi JSON-RPC trực tiếp bằng curl hoặc thư viện client web3 như viem. Đặt API key trong biến môi trường `BLOCKVECTRA_API_KEY`:

**curl (Header)**

Truy vấn chain ID EIP-155 bằng header yêu cầu `x-api-key`:

```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)**

Truy vấn số khối mới nhất bằng cách truyền API key trong đường dẫn 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)**

Kết nối bằng `createPublicClient` của viem và định nghĩa chuỗi `base` chính thức:

```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);
```

Bạn cũng có thể truyền key trong đường dẫn URL của transport:

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

Mẫu dự án khởi đầu đầy đủ: [blockvectra/multichain-viem](https://github.com/blockvectra/multichain-viem)


### Cấu trúc phản hồi

Phản hồi tuân theo đặc tả JSON-RPC 2.0:

* **Thành công**: Trả về một đối tượng chứa `jsonrpc: "2.0"`, số nguyên `id` khớp với yêu cầu và `result` được mã hóa thập lục phân (`eth_chainId` trả về chain ID dạng thập lục phân; `eth_blockNumber` trả về chiều cao khối mới nhất).
* **Phương thức không được phép**: Yêu cầu một phương thức ngoài các phương thức được mạng cho phép trả về mã lỗi JSON-RPC `-32601` (`method not available`, không tính phí).
* **Truy vấn ngoài cửa sổ**: Yêu cầu trạng thái lịch sử trước cửa sổ lưu giữ trạng thái trả về mã lỗi JSON-RPC `-32011` (không tính phí).
* **Thiếu API key**: Không cung cấp key trả về HTTP 401 với mã lỗi JSON-RPC `-32024` (`missing_api_key`, không tính phí).
* **Tham số không hợp lệ**: Tham số yêu cầu sai định dạng trả về mã lỗi JSON-RPC `-32602` (không tính phí).

## Khả năng hỗ trợ và chính sách phương thức

Giá trị hiện tại: `GET /v1/chains` (`methods`, `max_logs_block_range`, `state_window_blocks`).

### Thông số mạng và giới hạn

- **Phạm vi khối eth_getLogs**: Tối đa 1000 khối mỗi yêu cầu
- **Cửa sổ trạng thái lịch sử**: 10000 khối gần đây (truy vấn ngoài phạm vi trả về -32011)
- **Truy vết thực thi (debug_trace*)**: Không khả dụng

Phương thức được cho phép theo từng chuỗi: [Chuỗi được hỗ trợ](https://docs.blockvectra.com/en/chains/)

## Data API blockchain

Giá trị hiện tại: `GET /v1/chains` (`data`).

### Trạng thái Blockchain Data API

- **Khả dụng**: Blockchain Data API đã khả dụng trên Base. Duyệt qua các bộ dữ liệu được hỗ trợ trong danh mục bộ dữ liệu. [Duyệt danh mục bộ dữ liệu](https://blockvectra.com/vi/data/)

## Bắt đầu và API key

Tài khoản mới nhận 30,000,000 CU khi đăng ký — không cần thẻ tín dụng.

* **Console web**: Đăng ký bằng chữ ký ví Ethereum và tạo API key trong [Console](https://console.blockvectra.com/login/?next=%2Fkeys%2F). Xem [hướng dẫn bắt đầu nhanh](https://docs.blockvectra.com/vi/quickstart/) để biết chi tiết thiết lập.
* **Đăng ký bằng chương trình**: AI agent tự chủ, script tự động và pipeline CI có thể đăng nhập và tạo API key bằng chữ ký ví Ethereum (EIP-191) mà không cần trình duyệt. Làm theo [hướng dẫn đăng ký bằng chương trình](https://docs.blockvectra.com/en/guides/programmatic-signup/).
* **AI agent**: AI agent tự chủ có thể khám phá các khả năng của Base bằng server Model Context Protocol (MCP) chính thức. Xem [Kết nối AI Agent với BlockVectra](https://docs.blockvectra.com/vi/guides/ai-agents/).
* **Nâng giới hạn**: Sau khi nạp tiền, giới hạn lệnh gọi mỗi giây trên toàn tài khoản được gỡ bỏ; mỗi key vẫn chịu giới hạn tốc độ và burst Compute Unit (CU). Để biết mức giá và đơn vị tính phí hiện tại, xem [Trang bảng giá](https://blockvectra.com/vi/pricing/).

## Hướng dẫn và tài nguyên liên quan

* **Tài liệu dành cho nhà phát triển Base**: Để biết đặc tả mạng, cơ chế gas và hợp đồng trên Base, xem [tài liệu Base](https://docs.base.org) chính thức.
* **RPC tùy chỉnh cho ví**: Cấu hình endpoint RPC tùy chỉnh cho Base trong MetaMask và Rabby theo [hướng dẫn RPC tùy chỉnh cho ví](https://docs.blockvectra.com/vi/guides/wallet-custom-rpc/).
* **Mô phỏng giao dịch**: Kiểm thử thực thi giao dịch và đánh giá thay đổi trạng thái trước khi phát giao dịch bằng `eth_simulateV1` trong [hướng dẫn mô phỏng giao dịch](https://docs.blockvectra.com/en/guides/simulate-transactions/).

## Các bước tiếp theo

* [Khám phá danh mục bộ dữ liệu](https://blockvectra.com/vi/data/) để xem mọi bộ dữ liệu mà BlockVectra lập chỉ mục.
* [Xem gói miễn phí và bảng giá](https://blockvectra.com/vi/pricing/#free) để kiểm tra những gì tài khoản của bạn bao gồm.
* [Đăng nhập vào console](https://console.blockvectra.com/login/?next=%2Fkeys%2F) để tạo API key.
