API 연동

app to app

개요

app to app API를 사용하는 단계는 Prepare, Request, Result 3단계로 구분됩니다.

Prepare

사용자에게 요청할 작업을 준비합니다. 아래와 같은 작업이 가능합니다.

  • 인증

  • 메시지 서명

  • Coin 전송

  • 스마트 컨트렉트 실행

  • 네트워크 추가

  • 토큰 추가

"Coin 전송" 과 "스마트 컨트렉트 실행"은 블록체인 네트워크로 트랜젝션을 전송합니다.

현재 지갑에서는 아래와 같은 네트워크를 지원합니다.

NameTypeChain Id

Klaytn Cypress(mainnet)

Klaytn

8217

Klaytn Baobab(testnet)

Klaytn

1001

...

...

...

여러 블록체인 네트워크 중 원하는 네트워크를 고르기 위해 Prepare 단계에서 Chain Id를 선택할 수 있습니다. 선택하지 않는다면 기본으로 Klaytn Cypress network이 선택됩니다.

인증

사용자의 지갑 주소를 얻어옵니다.

서명

사용자의 지갑 주소를 이용해 서명을 진행합니다. 각 네트워크의 타입에 해당하는 형태로 서명이 이루어집니다.

NameTypeChain Id

Klaytn Cypress(mainnet)

Klaytn

https://docs.klaytn.com/dapp/json-rpc/api-references/klay/account#klay_sign

Klaytn Baobab(testnet)

Klaytn

https://docs.klaytn.com/dapp/json-rpc/api-references/klay/account#klay_sign

...

...

...

Coin 전송

사용자의 지갑에서 지정된 주소로 native coin을 전송합니다. (ex. klay)

스마트 컨트렉트 실행

요청한 ABI에 해당하는 스마트컨트렉트를 실행합니다.

네트워크 추가

사용자의 지갑에 네트워크를 추가합니다. Klutchwallet 에서 지원하는 네트워크만 가능합니다.

토 추가

사용자의 지갑에 특정 토큰(ERC-20, KIP-7) 을 추가합니다.

Request

Prepare 단계에서 생성된 Request Key를 이용해 유저에게 동작 실행을 승인 받습니다.

이를 위해 App2App Scheme 실행 혹은 QR코드 리딩이 필요합니다.

App2App Scheme은 다음과 같습니다.

Android

kaikas://wallet/api?request_key=${REQUEST_KEY}

iOS

kaikas://wallet/api?request_key=${REQUEST_KEY}

만약 모바일 지갑과 같은 단말기에서 수행되지 않는다면(ex. PC Web browser) 유저는 모바일에서 QR code나 URL을 통해 접근할 수 있습니다.

https://app.kaikas.io/a/${REQUEST_KEY}

위 주소를 담는 QR code를 생성 후 유저가 모바일 폰 혹은 앱 내의 QR스캐너를 이용해 스캔한다면, 서명이 가능합니다.

(QR code 는 http://davidshimjs.github.io/qrcodejs/ 등을 이용하여 직접 생성할 수 있습니다.)

Result

요청한 결과를 확인합니다. 사용자의 승인은 비동기적으로 수행되기 때문에, 결과 확인을 위해서는 성공 혹은 실패가 확인될 때 까지 Result API 를 통해 반복적으로 확인해야 합니다.

Last updated