Solana RPC 엔드포인트 문서

Solana RPC endpoint(엔드포인트)

ERPC는 Solana RPC 엔드포인트를 전 세계 Edge 경로로 제공하여 거래 봇, 지갑, DeFi 앱, 분석 시스템이 안정적인 네트워크 경로로 Solana에 접근할 수 있도록 돕습니다. Dashboard에서 API key를 발급한 뒤 아래 endpoint의 api-key 매개변수에 추가하면 바로 사용할 수 있습니다.
endpoint
https://edge.erpc.global?api-key=<YOUR_API_KEY>

예시

HTTP 요청 예시는 다음과 같습니다.
bash
curl https://edge.erpc.global?api-key=<YOUR_API_KEY> --header 'Content-Type: application/json' --data '{
  "jsonrpc":"2.0","id":1,
  "method":"getBlockHeight"
}'
WebSocket 구독도 동일한 호스트를 사용합니다.
endpoint
wss://edge.erpc.global?api-key=<YOUR_API_KEY>
bash
# Example: subscribe to slot updates
wscat -c "wss://edge.erpc.global?api-key=<YOUR_API_KEY>"
# After connected, send:
{"jsonrpc":"2.0","id":1,"method":"slotSubscribe"}
API key는 ERPC Dashboard에서 발급하고 확인할 수 있습니다: ERPC Dashboard
WebSocket보다 더 낮은 지연 시간이 필요하다면 Geyser gRPC 또는 ShredStream도 검토할 수 있습니다. 자세한 구성은 ERPC Dashboard를 통해 상담해 주세요.

History Access

오래된 블록과 트랜잭션을 조회하려면 HTTP 요청의 edge.erpc.global URL에 history=true를 추가하세요. 값은 반드시 소문자 true여야 합니다. getTransactionsForAddress를 제외하면 history=true가 없는 요청에는 각 노드가 보유한 최근 범위에서 응답하며, 이 옵션은 다음 메서드에 적용됩니다:
  • getBlock
  • getBlockTime
  • getBlocks
  • getBlocksWithLimit
  • getTransaction (getParsedTransaction 포함)
  • getSignaturesForAddress
  • getSignatureStatuses (searchTransactionHistory가 true일 때)
  • getTransactionsForAddress (transactionDetails가 "full"일 때, History Access 필요)
API key와 옵션을 쿼리 파라미터로 URL에 넣으세요:
endpoint
https://edge.erpc.global?api-key=<YOUR_API_KEY>&history=true
또는 Authorization: Bearer <YOUR_API_KEY>를 헤더로 보내고 옵션은 URL에 두세요:
endpoint
https://edge.erpc.global?history=true
History Access를 사용하는 HTTP 요청 예시는 다음과 같습니다.
bash
curl 'https://edge.erpc.global?history=true' \
  --header 'Authorization: Bearer <YOUR_API_KEY>' \
  --header 'Content-Type: application/json' \
  --data '{
  "jsonrpc":"2.0","id":1,
  "method":"getBlock",
  "params":[<SLOT>,{"maxSupportedTransactionVersion":1}]
}'
getTransactionsForAddress의 "full" 모드를 제외한 모든 메서드의 경우:
  • History Access가 응답한 호출은 각각 일반 요금보다 640 토큰 더 듭니다. getBlock은 42 + 640 = 682입니다.
  • History Access가 null, 빈 결과 또는 일부 결과를 반환한 경우에도 추가 요금이 붙습니다. 조회에 실패한 경우에는 추가 요금이 붙지 않습니다.
  • 최근 데이터로 응답한 호출은 history=true가 있어도 일반 요금 그대로입니다.
  • 배치는 각 호출을 개별로 계산하며, getSignatureStatuses는 서명마다가 아니라 호출마다 한 번 계산합니다.
  • 최근 트랜잭션을 폴링할 때는 history=true를 붙이지 마세요. 거기서 나오는 null마다 추가 요금이 붙습니다.
Free 요금제를 포함한 무료 할당량에는 History Access에 대한 한도가 있습니다. Free 요금제는 10초당 History Access 요청 한 건으로 제한됩니다.
transactionDetails를 "full"로 설정한 getTransactionsForAddress 호출은 트랜잭션이 최근 것이든 오래된 것이든 History Access입니다:
  • 이 호출에는 edge.erpc.global URL의 history=true가 필요합니다. 이 옵션이 없는 요청은 History Access 오류(코드 -32011)로 거부되며 요금이 붙지 않습니다.
  • history=true가 있으면 이 호출은 420 + 640 × N 토큰이 듭니다. 일반 요금 420에, 가져온 N개의 트랜잭션 하나마다 640이 더해지며, 트랜잭션이 최근 것이든 오래된 것이든 같습니다. 트랜잭션이 없는 행은 세지 않습니다.
  • 이 호출은 별도의 요청으로 보내야 합니다. 이 호출이 들어 있는 배치는 history=true가 있든 없든 거부되며, 배치 안의 각 호출에는 오류 -32600과 메시지 This request is not available in a mixed JSON-RPC batch. Please send it as a separate request.가 응답되고 어느 것도 전송되지 않습니다.
기본 signatures 모드는 history=true가 필요 없고 추가 요금도 붙지 않습니다. 주소의 새 트랜잭션을 폴링하려면 signatures 모드를 사용하고, 필요한 트랜잭션은 getTransaction으로 가져오세요.
오래된 블록이나 트랜잭션을 조회하는 데에는 일반 요청보다 훨씬 오래 걸릴 수 있으며, 경우에 따라 수 초가 걸리기도 합니다. History Access는 이러한 조회를 일반 요청과 분리하는 별도의 옵션이며, 덕분에 일반 요청은 빠르게 유지됩니다.
history=true 없이 오래된 슬롯에 대해 getBlock 또는 getBlockTime 요청을 보내면 다음 오류가 반환될 수 있습니다:
json
{
  "jsonrpc": "2.0",
  "error": {
    "code": -32011,
    "message": "This request needs history access. Add history=true to the endpoint URL.",
    "data": {
      "erpcCode": "ERPC_HISTORY_OPTION_REQUIRED"
    }
  },
  "id": 1
}
getTransaction, getParsedTransaction, getSignatureStatuses(searchTransactionHistory: true일 때)는 노드가 보유한 것보다 오래된 서명에 대해 null을 반환하고, getSignaturesForAddress, getBlocks, getBlocksWithLimit은 빈 결과 또는 일부 결과를 반환합니다.
history=true가 있는 요청은 다음 메시지를 반환할 수 있습니다:
  • This plan has reached its limit for history access. Add a paid plan to use tokens for history access. — 무료 할당량, 예를 들어 Free 요금제의 할당량이 한도에 도달했을 때 표시됩니다.
  • History access is unavailable while your token balance is low. Add tokens. — 유료 요금제에서 토큰 잔액이 부족할 때 표시됩니다.
  • On the Free plan, history access is limited to one request per 10 seconds. Slow down or use a paid plan. — Free 요금제에서 History Access 요청이 너무 빠르게 들어올 때 표시됩니다.

Unlimited Endpoint 지원 메서드

Unlimited Endpoints는 지연 시간이 낮은 표준 Solana RPC 호출에 최적화된 전용 HTTP 엔드포인트입니다. 지원되는 표준 Solana RPC 메서드는 다음과 같습니다.
  • getSlot
  • getBlockHeight
  • getLatestBlockhash
  • getBalance
  • getAccountInfo
  • getMultipleAccounts
  • getTransaction
  • sendTransaction
  • simulateTransaction
  • getSignatureStatuses
  • getRecentPrioritizationFees
  • getHealth
  • getVersion
  • getEpochInfo
  • getBlock
이 지원 범위 밖의 메서드에는 https://edge.erpc.global?api-key=<YOUR_API_KEY>를 사용하세요.

Solana RPC method 및 문서

method, 매개변수, 구독 사양의 전체 목록은 공식 Solana RPC 문서를 참고하세요. HTTP와 WebSocket 사용 방법을 모두 다룹니다.