이 문서는 이더리움 블록체인 API를 애플리케이션에 쉽게 통합할 수 있도록 정리된 참고 자료입니다.
Overview
이더리움의 JSON-RPC API는 외부 애플리케이션이 이더리움 네트워크와 상호 작용할 수 있도록 지원합니다. 아래 섹션에서는 API 기능을 카테고리별로 정리하여 쉽게 이해하고 활용할 수 있도록 설명합니다.
- 블록 API (Block APIs) - 블록체인 데이터 및 트랜잭션 정보를 조회합니다.
- 클라이언트 API (Client APIs) - 네트워크 상태 및 계정 정보를 가져옵니다.
- 실행 API (Execute APIs) - 트랜잭션을 시뮬레이션하고 가스 비용을 추정합니다.
- 수수료 시장 API (Fee Market APIs) - 가스 가격 및 트랜잭션 수수료 이력을 조회합니다.
- 필터 API (Filter APIs) - 블록체인 상태 변경 및 이벤트를 감지합니다.
- 서명 API (Sign APIs) - 개인 키를 사용하여 메시지 및 트랜잭션을 서명합니다.
- 상태 API (State APIs) - 계정 잔액 및 스마트 컨트랙트 상태를 조회합니다.
- 제출 API (Submit APIs) - 트랜잭션을 네트워크에 전송합니다.
- 트랜잭션 API (Transaction APIs) - 트랜잭션 상세 정보 및 영수증을 조회합니다.
block
이 API들은 블록체인 데이터를 검색하고 트랜잭션 관련 정보를 추출하는 기능을 제공합니다.
블록(Block) 관련 API
eth_getBlockByHash
: 특정 블록 해시로 블록 정보를 조회eth_getBlockByNumber
: 특정 블록 번호로 블록 정보를 조회eth_getBlockReceipts
: 특정 블록의 트랜잭션 영수증(Receipts) 조회
트랜잭션(Transaction) 관련 API
eth_getBlockTransactionCountByHash
: 특정 블록 해시 기준으로 블록 내 트랜잭션 수 조회eth_getBlockTransactionCountByNumber
: 특정 블록 번호 기준으로 블록 내 트랜잭션 수 조회
엉클(Uncle) 관련 API
eth_getUncleCountByBlockHash
: 특정 블록 해시 기준으로 엉클 블록 수 조회eth_getUncleCountByBlockNumber
: 특정 블록 번호 기준으로 엉클 블록 수 조회
client
이 API들은 클라이언트의 네트워크 상태, 계정 정보, 블록 데이터 등을 확인하는 기능을 제공합니다.
네트워크 정보 조회 API
eth_chainId
: 현재 네트워크의 체인 ID 조회eth_syncing
: 노드의 동기화 상태 조회
계정(Account) 및 노드 정보 조회 API
eth_coinbase
: 현재 클라이언트의 코인베이스 주소 조회eth_accounts
: 클라이언트가 소유한 계정 목록 조회
블록 정보 조회 API
eth_blockNumber
: 최신 블록 번호 조회
execute
이 API들은 트랜잭션 실행 시뮬레이션, 가스 비용 예측 및 접근 리스트 생성을 지원하는 기능을 제공합니다.
트랜잭션 실행 및 시뮬레이션 API
eth_call
: 블록체인에 기록하지 않고 트랜잭션을 즉시 실행하여 결과 반환eth_estimateGas
: 트랜잭션을 실행하는 데 필요한 가스량 추정
접근 제어(Access Control) API
eth_createAccessList
: 특정 트랜잭션에 대한 접근 리스트(access list) 생성
fee_market
이 API들은 블록체인 네트워크에서 트랜잭션 실행 시 발생하는 가스 비용과 관련된 정보를 제공합니다.
가스 가격 조회 API
eth_gasPrice
: 현재 가스 가격(wei) 조회eth_blobBaseFee
: 블롭(blob) 가스의 기본 수수료 조회eth_maxPriorityFeePerGas
: 최대 우선순위 가스 수수료 조회
트랜잭션 수수료 이력 조회 API
eth_feeHistory
: 특정 블록 범위 내 트랜잭션 기본 가스 수수료 및 효과적인 우선순위 수수료 조회
filter
이 API들은 블록체인 상태 변경을 감지하고 필터를 통해 특정 이벤트(로그, 트랜잭션 등)를 추적하는 기능을 제공합니다.
필터 생성 API
eth_newFilter
: 특정 필터 조건을 기반으로 상태 변경(로그) 감지를 위한 필터 생성eth_newBlockFilter
: 새 블록이 도착할 때 알림을 받을 필터 생성eth_newPendingTransactionFilter
: 새로운 보류 중인 트랜잭션이 도착할 때 알림을 받을 필터 생성
필터 관리 API
eth_uninstallFilter
: 특정 필터 ID를 기반으로 필터 삭제
필터 데이터 조회 API
eth_getFilterChanges
: 특정 필터의 최신 변경 사항(새로운 로그)을 폴링 방식으로 조회eth_getFilterLogs
: 특정 필터에 해당하는 모든 로그 조회eth_getLogs
: 지정된 필터 조건에 맞는 모든 로그 조회
sign
이 API들은 이더리움 계정의 개인 키를 사용하여 메시지 또는 트랜잭션을 서명하는 기능을 제공합니다.
메시지 및 트랜잭션 서명 API
eth_sign
: 주어진 데이터(EIP-191)를 서명하여 반환eth_signTransaction
: 지정된 계정으로 트랜잭션을 서명하고 RLP 인코딩된 트랜잭션 반환
state
이 API들은 이더리움 계정 및 스마트 컨트랙트 상태 데이터를 조회하는 기능을 제공합니다.
계정 상태 조회 API
eth_getBalance
: 특정 주소의 계정 잔액 조회eth_getTransactionCount
: 특정 계정의 논스(nonce) 조회eth_getStorageAt
: 특정 주소의 스토리지 슬롯 데이터 조회eth_getCode
: 특정 주소에 배포된 스마트 컨트랙트 코드 조회eth_getProof
: 특정 계정 및 스토리지 키에 대한 머클 증명 반환
submit
이 API들은 트랜잭션을 네트워크에 전송하여 블록체인에 기록하는 기능을 제공합니다.
트랜잭션 제출 API
eth_sendTransaction
: 트랜잭션을 서명하고 제출eth_sendRawTransaction
: 사전에 서명된 트랜잭션을 블록체인 네트워크에 제출
transaction
이 API들은 블록체인의 트랜잭션 데이터를 검색하고 해당 트랜잭션의 결과(영수증)를 조회하는 기능을 제공합니다.
트랜잭션 정보 조회 API
eth_getTransactionByHash
: 특정 트랜잭션 해시를 기반으로 트랜잭션 정보 조회eth_getTransactionByBlockHashAndIndex
: 특정 블록 해시와 트랜잭션 인덱스로 트랜잭션 정보 조회eth_getTransactionByBlockNumberAndIndex
: 특정 블록 번호와 트랜잭션 인덱스로 트랜잭션 정보 조회
트랜잭션 영수증(Receipt) 조회 API
eth_getTransactionReceipt
: 특정 트랜잭션 해시를 기반으로 트랜잭션 영수증 정보 조회