Node API

Download OpenAPI specification:Download

Introduction

Node API는 탈중앙화 어플리케이션 (DApp) 개발자들이 직접 노드를 운영할 필요 없이 블록체인 플랫폼인 Kaia를 활용할 수 있게 해주는 API입니다. 원래 Kaia 블록체인을 사용하려면 고성능 하드웨어 스펙을 갖춘 Kaia Endpoint Node(KEN)를 직접 운영해야 하지만, Node API를 사용하면 노드 운영 필요없이 Kaia에 접속해 블록체인 플랫폼을 바로 활용할 수 있습니다. Node API의 엔드포인트를 사용하여 다음 작업을 수행할 수 있습니다.

  • JSON RPC API 호출
  • FT 컨트랙트 조회
  • NFT 컨트랙트 조회
  • WebSocket 연결

KAS에 대한 자세한 정보는 KAS Docs를 참고해 주세요. 질문이 있으시다면 언제든지 KAS 개발자 포럼에 남겨주세요.

Authorization

공통 에러 Unauthorized는 호출하는 API 종류에 상관없이 인증 시스템이 정상적으로 실행되지 않으면 발생합니다.

401: Unauthorized

Code Message Description
1010009 The credential you provided does not match in our record 자격증명 정보가 유효하지 않습니다.
1010007 The path or method in request is invalid. Check the service API documentation and try again. 경로나 메서드가 잘못되었습니다.

Authentication

Basic

KAS는 Basic HTTP Auth를 사용하며, 모든 요청에 반드시 올바른 Authorization 헤더가 포함되어 있어야 합니다. KAS Console에서 발급 받은 AccessKey ID를 username으로, Secret AccessKey를 password를 이용하여 Authorization 헤더를 생성하십시오.

참고

KAS 계정의 각 Credential은 모든 KAS 서비스를 사용할 수 있으며, Wallet API로 만든 Kaia 계정에 대한 모든 권한을 소유하기 때문에, 생성한 Kaia 계정의 자산(KAIA 등) 이동이나 트랜잭션 실행 권한을 가집니다. KAS/Kaia 계정 보안을 위해 KAS API 인증 키(Secret Access Key)를 타인과 함부로 공유하지 말고 주의해 관리하십시오.

cURL

  curl --location --request POST 'https://node-api.klaytnapi.com/v1/klaytn' \
  -u {{your_accessKeyId}}:{{your_secretAccessKey}} \
  --header 'x-chain-id: 8217' \
  --header 'Content-Type: application/json' \
  --data-raw '{"jsonrpc":"2.0","method":"klay_blockNumber","params":[],"id":1}'

caver-js

  const accessKeyId = "{{your_accessKeyId}}";
  const secretAccessKey = "{{your_secretAccessKey}}";

  const option = {
    headers: [
      {name: 'Authorization', value: 'Basic ' + Buffer.from(accessKeyId + ':' + secretAccessKey).toString('base64')},
      {name: 'x-chain-id', value: '8217'},
    ]
  }

  const caver = new Caver(new Caver.providers.HttpProvider("https://node-api.klaytnapi.com/v1/klaytn", option))

caver-java

  HttpService httpService = new HttpService("https://node-api.klaytnapi.com/v1/klaytn");
  String auth = Credentials.basic("{{your_accessKeyId}}", "{{your_secretAccessKey}}", StandardCharsets.UTF_8);
  httpService.addHeader("Authorization", auth);
  httpService.addHeader("x-chain-id", "8217")
  Caver caver = Caver.build(httpService);
Security Scheme Type HTTP
HTTP Authorization Scheme basic