# Base RPC URL: 키 없는 접근, curl 및 viem 예제

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

아래의 Base 메인넷 퍼블릭 RPC URL을 사용하여 API key 없이 Chain ID를 읽는 것부터 시작하세요. [Base 체인 페이지](https://blockvectra.com/en/chains/base_mainnet/)에서 지원되는 메서드와 IP별 제한을 확인하세요. 해당 체인에서 허용하는 메서드 중 `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는 URL 경로 기반 키 인증과 요청 헤더 인증(`x-api-key`)을 모두 지원합니다.

| 파라미터 / 엔드포인트 | 값 / 템플릿 | 인증 방식 |
|---|---|---|
| Chain ID (EIP-155) | `8453` | — |
| JSON-RPC (경로 키) | `POST https://api.blockvectra.com/v1/base_mainnet/{api_key}` | URL 경로에 API key 전달 |
| JSON-RPC (헤더 키) | `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 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 (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);
```

transport URL 경로에 키를 전달할 수도 있습니다:

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

Complete starter template: [blockvectra/multichain-viem](https://github.com/blockvectra/multichain-viem)


### 응답 구조

응답은 JSON-RPC 2.0 사양을 준수합니다:

* **성공**: `jsonrpc: "2.0"`, 일치하는 정수 `id`, 16진수로 인코딩된 `result`를 포함하는 객체를 반환합니다(`eth_chainId`는 16진수 인코딩된 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/)

## 블록체인 Data API

실시간 값: `GET /v1/chains` (`data`).

### Blockchain Data API 상태

- **사용 가능**: Base에서 Blockchain Data API를 사용할 수 있습니다. 지원 데이터셋은 데이터셋 디렉터리에서 확인하세요. [데이터셋 디렉터리 보기](https://blockvectra.com/ko/data/)

## 시작하기 및 API key

신규 계정 가입 시 30,000,000 CU 무료 제공 — 신용카드 불필요.

* **웹 콘솔**: 이더리움 지갑 서명으로 가입하고 [콘솔](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의 기능을 검색할 수 있습니다. [BlockVectra에 AI 에이전트 연결하기](https://docs.blockvectra.com/en/guides/ai-agents/)를 참조하세요.
* **한도 상향**: 충전 후에는 계정 전반의 초당 호출 수 제한이 제거되며, 각 키는 연산 단위(CU) 속도 및 버스트 제한을 계속 적용받습니다. 현재 요율 및 청구 단위는 [요금 페이지](https://blockvectra.com/en/pricing/)를 참조하세요.

## 관련 가이드 및 리소스

* **Base 개발자 문서**: Base의 네트워크 사양, 가스 메커니즘 및 컨트랙트에 대한 내용은 공식 [Base 문서](https://docs.base.org)를 참조하세요.
* **지갑 커스텀 RPC**: [지갑 커스텀 RPC 가이드](https://docs.blockvectra.com/en/guides/wallet-custom-rpc/)를 사용하여 MetaMask 및 Rabby에서 Base용 커스텀 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를 생성하세요.
