> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stablenet.network/llms.txt
> Use this file to discover all available pages before exploring further.

# RPC API 레퍼런스

> StableNet JSON-RPC 네임스페이스, 메서드, 이벤트 구독 전체 레퍼런스.

> StableNet 노드에서 사용할 수 있는 모든 JSON-RPC 메서드를 네임스페이스별로 정리했습니다.

## 연결 엔드포인트

| 트랜스포트     | URL                                   |
| --------- | ------------------------------------- |
| HTTP RPC  | `https://api.test.stablenet.network`  |
| WebSocket | `wss://api.test.stablenet.network/ws` |

`eth_subscribe` 메서드는 WebSocket 연결이 필요합니다.

## eth 네임스페이스

### 네트워크 및 수수료

| 메서드                        | 설명                                 |
| -------------------------- | ---------------------------------- |
| `eth_chainId`              | 체인 ID 반환                           |
| `eth_gasPrice`             | 레거시 트랜잭션의 가스 가격 반환                 |
| `eth_maxPriorityFeePerGas` | GovValidator 컨트랙트가 설정한 우선순위 수수료 반환 |
| `eth_feeHistory`           | 과거 수수료 데이터 반환                      |
| `eth_syncing`              | 노드 동기화 상태 반환                       |

> Anzeon WBFT가 활성화된 StableNet에서 `eth_maxPriorityFeePerGas`는 오라클 추정값이 아니라 GovValidator 컨트랙트가 설정한 가스 팁 값을 반환합니다.

### 블록 및 상태

| 메서드                         | 설명                     |
| --------------------------- | ---------------------- |
| `eth_blockNumber`           | 현재 블록 번호 반환            |
| `eth_getBalance`            | 계정 잔액 반환               |
| `eth_getCode`               | 컨트랙트 바이트코드 반환          |
| `eth_getStorageAt`          | 특정 스토리지 슬롯 값 반환        |
| `eth_getProof`              | 계정 및 스토리지 Merkle 증명 반환 |
| `eth_getBlockByNumber`      | 블록 번호로 블록 조회           |
| `eth_getBlockByHash`        | 블록 해시로 블록 조회           |
| `eth_getTransactionByHash`  | 트랜잭션 해시로 트랜잭션 조회       |
| `eth_getTransactionReceipt` | 트랜잭션 영수증 조회            |

### 트랜잭션

| 메서드                      | 설명                          |
| ------------------------ | --------------------------- |
| `eth_sendTransaction`    | 트랜잭션 서명 후 제출 (잠금 해제된 계정 필요) |
| `eth_sendRawTransaction` | 미리 서명된 트랜잭션 제출              |
| `eth_signTransaction`    | 제출 없이 트랜잭션만 서명              |
| `eth_fillTransaction`    | 트랜잭션의 누락된 기본 필드 채우기         |
| `eth_estimateGas`        | 트랜잭션 실행에 필요한 가스 추정          |
| `eth_call`               | 상태 변경 없는 읽기 전용 호출 실행        |

### 수수료 위임 확장 메서드

StableNet은 수수료 위임 서명을 위한 확장 API를 제공합니다.

| 메서드                                      | 설명                              |
| ---------------------------------------- | ------------------------------- |
| `personal_signRawFeeDelegateTransaction` | 패스워드로 잠금 해제된 계정으로 수수료 지불자 서명 추가 |
| `eth_signRawFeeDelegateTransaction`      | 이미 잠금 해제된 계정으로 수수료 지불자 서명 추가    |

서명된 트랜잭션은 `eth_sendRawTransaction`으로 제출합니다. 가스 비용은 수수료 지불자에게 청구됩니다.

## eth 필터 메서드

### 폴링 기반 필터

| 메서드                               | 반환값     | 설명                 |
| --------------------------------- | ------- | ------------------ |
| `eth_newFilter`                   | 필터 ID   | 조건에 맞는 로그 필터 생성    |
| `eth_newBlockFilter`              | 필터 ID   | 새 블록 해시 필터 생성      |
| `eth_newPendingTransactionFilter` | 필터 ID   | 보류 중인 트랜잭션 필터 생성   |
| `eth_getFilterChanges`            | 로그 / 해시 | 마지막 폴링 이후 변경 내역 반환 |
| `eth_getFilterLogs`               | 로그 배열   | 필터와 일치하는 모든 로그 반환  |
| `eth_getLogs`                     | 로그 배열   | 영구 필터 없이 1회성 로그 조회 |
| `eth_uninstallFilter`             | Boolean | 필터 삭제              |

폴링 필터는 **5분** 동안 사용이 없으면 만료됩니다. `eth_getFilterChanges` 호출 시마다 타이머가 초기화됩니다.

### WebSocket 구독

| 메서드                                       | 이벤트 타입  | 설명             |
| ----------------------------------------- | ------- | -------------- |
| `eth_subscribe("newHeads")`               | 블록 헤더   | 새 블록마다 발생      |
| `eth_subscribe("logs", criteria)`         | 로그      | 조건에 맞는 로그 발생 시 |
| `eth_subscribe("newPendingTransactions")` | Tx 해시   | 보류 트랜잭션마다 발생   |
| `eth_unsubscribe`                         | Boolean | 구독 취소          |

**로그 구독의 FilterCriteria 필드:**

| 필드          | 타입                      | 설명                           |
| ----------- | ----------------------- | ---------------------------- |
| `fromBlock` | `string` (블록 태그 또는 hex) | 시작 블록 (`null` = 최신)          |
| `toBlock`   | `string` (블록 태그 또는 hex) | 종료 블록 (`null` = 최신)          |
| `address`   | `string \| string[]`    | 필터링할 컨트랙트 주소                 |
| `topics`    | `string[][]`            | 토픽 필터 (위치 간 AND, 같은 위치 내 OR) |

토픽 매칭: 최대 4개 위치 지원. 위치에 `null`을 지정하면 모든 값에 매칭됩니다.

## txpool 네임스페이스

| 메서드                  | 설명                      |
| -------------------- | ----------------------- |
| `txpool_content`     | 보류 및 대기 중인 모든 트랜잭션 목록   |
| `txpool_contentFrom` | 특정 주소의 트랜잭션 목록          |
| `txpool_status`      | 보류/대기 트랜잭션 수 반환         |
| `txpool_inspect`     | 트랜잭션 풀 요약 정보 (읽기 쉬운 형식) |

**트랜잭션 상태:**

* **pending** — 다음 블록에 포함될 수 있는 트랜잭션
* **queued** — 논스 공백 또는 잔액 부족으로 대기 중인 트랜잭션

## web3 네임스페이스

| 메서드                  | 설명                       |
| -------------------- | ------------------------ |
| `web3_clientVersion` | 노드 클라이언트 버전 문자열 반환       |
| `web3_sha3`          | 입력 데이터의 Keccak-256 해시 계산 |

## istanbul 네임스페이스

Anzeon WBFT 합의가 활성화된 경우에만 사용 가능합니다.

| 메서드                                        | 설명                     |
| ------------------------------------------ | ---------------------- |
| `istanbul_nodeAddress`                     | 서명자 노드 주소 반환           |
| `istanbul_getCommitSignersFromBlock`       | 블록 번호의 제안자 및 커밋 서명자 반환 |
| `istanbul_getCommitSignersFromBlockByHash` | 블록 해시로 서명자 반환          |
| `istanbul_getValidators`                   | 현재 밸리데이터 목록 반환         |
| `istanbul_getValidatorsAtHash`             | 특정 블록 해시의 밸리데이터 반환     |
| `istanbul_status`                          | 라운드 및 실러 통계 반환         |

## personal 네임스페이스

`personal`은 **공개 RPC 엔드포인트에서 비활성화**되어 있습니다. 로컬 노드에서만 사용 가능합니다.

| 메서드                        | 설명                 |
| -------------------------- | ------------------ |
| `personal_newAccount`      | 새 계정 생성            |
| `personal_listAccounts`    | 관리 중인 계정 목록        |
| `personal_unlockAccount`   | 패스워드로 계정 잠금 해제     |
| `personal_lockAccount`     | 계정 잠금              |
| `personal_sendTransaction` | 패스워드로 서명 후 트랜잭션 전송 |
| `personal_signTransaction` | 패스워드로 트랜잭션 서명      |
| `personal_sign`            | 패스워드로 임의 데이터 서명    |
| `personal_importRawKey`    | 개인 키 가져오기          |

## 관련 문서

* [StableNet 연결하기](/ko/v0.3/connect-to-stablenet) — RPC 엔드포인트 설정
* [수수료 위임 사용 사례](/ko/v0.3/fee-delegation) — 수수료 위임 워크플로우
