Klaytn BApp 개발을 위한 API

chickenfondue·2022년 1월 6일
0
post-custom-banner

요약

Klaytn블록체인에 트랜잭션을 생성하고 데이터를 읽는데는 여러가지 방법이 있다. 일반적으로 블록체인 플랫폼을 이용하기 위해서는 해당 블록체인에 참여하는 노드를 운영하여야 하지만 Klaytn은 노드들에 간접적으로 접근할 수 있는 아래와 같은 방법들을 제공한다.

  • Klaytn node를 운영하여 블록체인에 직접 명령 호출
  • KAS(Klaytn API Service) 를 이용한 API 호출
  • Klip API를 이용하여 Klip 지갑 서비스를 사용

각 방법 중 자신이 필요로 하는 기능과 서비스 형태에 맞도록 골라 사용 할 수 있다. 이런 식으로 특정 주체에서 운영하는 서버를 통해 노드에 접근하는 것은 블록체인의 주요한 특성이자 장점 중 하나인 탈중앙성을 잃는다고 볼 수도 있다. 하지만 어차피 데이터 자체는 암호학적으로 검증 가능한 형태로 서명되어 블록체인상에 올라가기 때문에 탈중앙화된 투명한 데이터 저장/읽기 라는 장점은 그대로 가져갈 수 있다. 또한 노드가 되기 위해 필요한 프로세싱 성능, 저장소가 필요 없이 API 호출만으로 블록체인 앱을 만들 수 있기 때문에 중간에 중앙 서버를 거친다는 점만 괜찮다면 편리하게 개발을 할 수 있다.

중간에서 서버를 운영하여 노드에 접근하기 때문에 예상한대로 무료는 아니다. KAS 기준으로 월 10,000개 요청 까지는 무료이고 이후 월 단위 요금이 부과된다.

KAS (Klaytn API Service)


Klaytn 블록체인을 일종의 프록시 형태로 사용할 수 있는 API이다. KAS에서 운영하는 서버에서 제공하는 엔드포인트로 API 요청을 날리면 KAS는 운영중인 Klaytn 노드에 해당 API 요청에 필요한 명령을 날려 Kalytn 블록체인에 데이터를 쓰거나 읽어 사용자에게 응답을 제공한다.

Custodial wallet 형태로 사용자 키를 관리해주는 Wallet Key 서비스와 Enterprise를 위한 별도의 지원도 제공한다.

Global Fee Payer 서비스를 이용하면 KAS를 사용하면서 발생하는 트랜잭션 fee를 GroundX에서대신 납부해주고 후불로 비용을 청구받을 수 있다.

JSON-RPC, WebSocket HTTP query 형태의 API를 제공한다.

Node API

RPC 형식 혹은 쿼리 형식으로 노드에 날릴 명령을 직접 입력하여 날리는 API

History API

KLAY, FT, NFT 토큰의 정보를 조회하는 API

사용자가 토큰을 주고 받은 기록, 소유한 NFT 정보 등을 확인

FT 혹은 NFT Smart contract 정보 조회

NFT 소유권 변경 기록 조회

Wallet API

Klaytn 계정을 만들고 관리할 수 있는 API

계정을 생성하면 Custodial wallet(수탁지갑) 형태로 사용자 개인 키는 KAS에서 보관해준다. 혹은 직접 트랜잭션을 만들어 Klaytn에 전송할 수도 있다.

수수료 대납 계정을 설정한다.

또한 클레이튼의 특징 중 하나인 다중서명 관련된 API도 지원하는데 이는 다중서명의 동작 방식에 대해 알아야 해서 다른 포스팅으로 다뤄야 할 것 같다(귀찮아서 아님..)

Anchor API

앵커링이란 메인네트워크 외 타 네트워크에서 생성한 트랜잭션들로 이루어진 블록의 해시를 메인네트워크에 특정한 트랜잭션을 이용해 자동으로 저장하는 기능이다. 메인네트워크가 아닌 별도의 네트워크에서 블록체인을 이용해 데이터를 구축한 경우 자신의 체인에 올라간 데이터가 무결하다는 것을 사용자들에게 확신 시킬 수 있다.

Caver

Klaytn 노드를 사용할 수 있게 해주는 SDK. 실행 중인 특정 노드에 접속하여 JSON-RPC 명령어를 날린다.

Java sdk와 Javascript sdk가 있으며 Java sdk는 Android 호환이 가능하다.

확장 라이브러리로 직접 노드에 연결하는 대신 KAS를 사용할 수 있는 caver 라이브러리가 존재한다.

Klip API

Klip

Klaytn 을 이용해 FT, NFT 거래를 할 수 있도록 해주는 카카오톡 내의 서비스. Klay 코인을 전송하거나 NFT 거래를 하는 등의 기능 제공한다. 키를 위임하여 관리하는 Custodial wallet 서비스이다. (private key 위탁 관리)

https://docs.klipwallet.com/

Klaytn의 API인 KAS(Klaytn API Service)를 내부적으로 사용하며 NFT의 발행, 관리, 전송 같은 간단한 기능을 쉽게 사용하게 해주는 API를 제공해준다. 현재는 파트너 서비스스로 등록된 서비스만 사용 가능하다.

Card minting API

https://docs.klipwallet.com/rest-api/rest-api-card-minting

Klip Partners 회원 가입(허용된 외부 서비스) 하면 Klaytn 블록체인에 EOA 주소와 카드를 발행할 스마트 컨트랙트가 생성된다. 가입한 ID, PW 를 통해 로그인 시 24시간 유효한 JWT 토큰 발행하여 사용하는 구조이다. 아래와 같은 기능을 수행할 수 있다. <카드>는 Klip 서비스에서 NFT를 지칭하는 단어이다.

  • 이미지, 동영상 업로드
    • NFT에 포함될 이미지, 동영상 데이터를 업로드 하여 링크를 제공해줌
  • 특정 주소에 카드 발행
    • EOA(지갑 주소) 에 직접 nft 발행
    • 여러 EOA에 동시 발행 가능
    • 이미지, 동영상은 url 형식으로 입력받음 (외부의 이미지도 사용 가능하다는 뜻)
  • 특정 Klip 회원에게 카드 발행
    • to_person : 카드를 발행받을 사용자. [실명, 전화번호]
    • 해당 실명, 전화번호 조합의 Klip 가입자가 없다면 발행 실패
  • 카드 조회
    • 사용자의 NFT 소유 정보 확인
    • 특정 NFT 정보 조회

App2App API

모바일, 웹 클라이언트에서 Klip 서비스를 호출하는 API 이다. 안드로이드와 iOS용 SDK를 지원한다.

App2App API 동작흐름

사용자의 지갑 주소를 확인하고 토큰 전송, 컨트랙트 실행 등을 할 수 있다. 동작 수행 시 카카오톡 내의 Klip 서비스로 이동하여 사용자가 설정한 지갑 정보를 통해 작업을 수행한다. 즉, 카카오톡이 설치되어 있어야 사용할 수 있다. PC 웹 환경에서는 핸드폰에 설치된 Klip을 통해 인증할 수 있는 QR코드를 제공해준다.

post-custom-banner

0개의 댓글