# Base RPC URL: การเข้าถึงแบบไม่ใช้คีย์ ตัวอย่าง curl และ viem

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

เริ่มต้นด้วย RPC URL สาธารณะของ Base mainnet ด้านล่างเพื่ออ่าน chain ID โดยไม่ต้องใช้ API key ตรวจสอบเมธอดที่รองรับและขีดจำกัดต่อ 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":[]}'
```

## ข้อมูลเครือข่ายและ Endpoint

ทุกคำขอไปยัง Base จะระบุเครือข่ายเป้าหมายอย่างชัดเจนในพาธ URL โดยใช้สลัก `base_mainnet` ทั้งนี้ JSON-RPC รองรับทั้งการยืนยันตัวตนด้วยคีย์ในพาธและการยืนยันตัวตนผ่านส่วนหัวคำขอ (`x-api-key`)

| พารามิเตอร์ / เอนด์พอยต์ | ค่า / เทมเพลต | การยืนยันตัวตน |
|---|---|---|
| Chain ID (EIP-155) | `8453` | — |
| JSON-RPC (คีย์ในพาธ) | `POST https://api.blockvectra.com/v1/base_mainnet/{api_key}` | API key ในพาธ URL |
| JSON-RPC (คีย์ในส่วนหัว) | `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 โดยตรง

คุณสามารถเรียก JSON-RPC ได้โดยตรงโดยใช้ curl หรือไลบรารีไคลเอนต์ web3 เช่น viem กำหนดค่า API key ของคุณในตัวแปรสภาพแวดล้อม `BLOCKVECTRA_API_KEY`:

**curl (Header)**

สอบถาม EIP-155 chain ID โดยใช้ส่วนหัวคำขอ `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)**

สอบถามหมายเลขบล็อกล่าสุดโดยส่ง 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)**

เชื่อมต่อโดยใช้ `createPublicClient` ของ viem และนิยามเชน `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 ของ transport ได้ด้วย:

```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**: การละเว้นคีย์จะส่งคืน 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/)

## Blockchain Data API

ค่าแบบเรียลไทม์: `GET /v1/chains` (`data`)

### สถานะ Blockchain Data API

- **พร้อมใช้งาน**: Blockchain Data API พร้อมใช้งานบน Base สำรวจชุดข้อมูลที่รองรับได้ในไดเรกทอรีชุดข้อมูล [สำรวจไดเรกทอรีชุดข้อมูล](https://blockvectra.com/th/data/)

## การเริ่มต้นใช้งานและ API Key

บัญชีใหม่รับ 30,000,000 CU เมื่อลงทะเบียน — ไม่ต้องใช้บัตรเครดิต

* **เว็บคอนโซล**: ลงทะเบียนผ่านลายเซ็นกระเป๋าเงิน Ethereum และสร้าง API key ใน [คอนโซล](https://console.blockvectra.com/login/?next=%2Fkeys%2F) ดูรายละเอียดการตั้งค่าได้ที่ [คู่มือเริ่มต้นใช้งานอย่างรวดเร็ว](https://docs.blockvectra.com/en/quickstart/)
* **การลงทะเบียนแบบเป็นโปรแกรม**: AI agent อัตโนมัติ, สคริปต์อัตโนมัติ และ CI pipeline สามารถเข้าสู่ระบบและจัดเตรียม API key โดยใช้ลายเซ็นกระเป๋าเงิน Ethereum (EIP-191) โดยไม่ต้องใช้เบราว์เซอร์ ทำตาม [คู่มือการลงทะเบียนแบบเป็นโปรแกรม](https://docs.blockvectra.com/en/guides/programmatic-signup/)
* **AI Agent**: AI agent อัตโนมัติสามารถค้นหาความสามารถของ Base ได้โดยใช้เซิร์ฟเวอร์ Model Context Protocol (MCP) อย่างเป็นทางการ ดู [การเชื่อมต่อ AI Agent เข้ากับ BlockVectra](https://docs.blockvectra.com/en/guides/ai-agents/)
* **การอัปเกรดขีดจำกัด**: หลังจากเติมเงิน ขีดจำกัดการเรียกต่อวินาทีทั่วทั้งบัญชีจะถูกยกเลิก โดยแต่ละคีย์ยังคงอยู่ภายใต้อัตรา Compute Unit (CU) และขีดจำกัด burst สำหรับอัตราและหน่วยเรียกเก็บเงินปัจจุบัน โปรดดู [หน้าราคา](https://blockvectra.com/en/pricing/)

## คู่มือและแหล่งข้อมูลที่เกี่ยวข้อง

* **เอกสารสำหรับนักพัฒนาของ Base**: สำหรับข้อกำหนดเครือข่าย, กลไก gas และสัญญาบน Base โปรดดู [เอกสาร Base อย่างเป็นทางการ](https://docs.base.org)
* **Custom RPC สำหรับกระเป๋าเงิน**: กำหนดค่า RPC endpoint แบบกำหนดเองสำหรับ Base ใน MetaMask และ Rabby โดยใช้ [คู่มือ Wallet Custom RPC](https://docs.blockvectra.com/en/guides/wallet-custom-rpc/)
* **การจำลองธุรกรรม**: ทดสอบการดำเนินการธุรกรรมและประเมินการเปลี่ยนแปลงสถานะก่อนบรอดแคสต์โดยใช้ `eth_simulateV1` ใน [คู่มือการจำลองธุรกรรม](https://docs.blockvectra.com/en/guides/simulate-transactions/)

## ขั้นตอนถัดไป

* [เลือกดูไดเรกทอรีชุดข้อมูล](https://blockvectra.com/en/data/) เพื่อดูชุดข้อมูลทั้งหมดที่ BlockVectra จัดทำดัชนี
* [ดูแพ็กเกจฟรีและการกำหนดราคา](https://blockvectra.com/en/pricing/#free) เพื่อตรวจสอบสิทธิประโยชน์ในบัญชีของคุณ
* [เข้าสู่ระบบคอนโซล](https://console.blockvectra.com/login/?next=%2Fkeys%2F) เพื่อสร้าง API key
