createAccount, Seed 구문, 거래소 전송 등 질문

안녕하세요

1. 시드 구문
KlaytnWallet에서 Create Account를 하면 [ 계정 주소, Private Key, Klaytn Wallet Key ] 가 생기잖아요
근데 Kaikas나 Metamask를 쓸 땐 seed 구문이 나오는데 여기서는 왜 안나오는건가요??
시드구문은 Kaikas나 Metamask와 연결할때만 필요한건가요?

2. API createAccount로 계정 생성

It generates Klaytn address and private key, public key pair.

API문서를 봤을 때는 [ Address, Private Key, Public Key ] 이렇게 생긴다는데 아래 스크린샷에 보면 publickey와 address밖에 없어서요. 어떻게 해야 PK도 얻을 수 있나요?

const account = await caver.kas.wallet.createAccount()

image

3. Klaytn Wallet Key는 어디에 사용되나요?
KlaytnWallet에서 계정을 만들면 Address, Private Key, Klaytn Wallet Key가 생기는데 생각해보니 Klaytn Wallet Key는 어디에도 안쓰는거 같아서요.

4. Address, Private Key, Public Key, Seed 구문까지 return 받으려면 어떤 API를 사용해야 될까요?
Seed 구문은 계정생성할 때 필요가 없나요? 없다면 Seed 구문은 빼고요

5. 만약 다른 거래소에 자체 발행한 토큰이 상장된다면
A 계정에 있는 지갑에서 100 DTK(자체 토큰)를 예를 들어 업비트쪽 계정에 보내주려면 어떤 API를 써야 되나요?

안녕하세요, 클레이튼 포럼에 질문을 올려주셔서 감사드립니다.

  1. 시드구문은 private key를 사람이 기억하기도 어렵고 typing하기도 어렵기 때문에, 사람이 좀 더 기억하기 쉬운 형태(mnemonic)로 제공하는 것입니다. caver-js에서는 현재 private key를 시드 구문형태로 출력하는 것을 제공하고 있지는 않습니다.

  2. KAS에서 만드신 계정은 보안을 위해 private key는 HSM 내부에서만 확인할 수 있습니다. private key는 얻으실 수 없고, KAS API 내부에서 private key를 이용해 서명이 만들어집니다.

  3. KlaytnWalletKey는 key pair(private key, public key)와 account가 분리된 형태를 표현하고자 만든 포맷입니다. KlaytnWalletKey에 대한 설명은 이 링크를 참고 부탁드립니다.

  4. 위 2번 답변에서 말씀드렸다시피 private key는 받으실 수 없습니다.

  5. 어떤 시나리오인지 불분명합니다만, 기본적으로는 contract execution을 이용해 토큰을 전송하시면 됩니다. 거래소를 위한 특별한 API가 존재하진 않습니다.

감사합니다.

1개의 좋아요

답변 감사합니다^^

  1. 출금 API는 어떻게 사용할 수 있나요?

1. KAS API를 통해 transfer() 등을 호출하려면 어떻게 해야 될까요?
실제 앱 서비스를 구현한다는 가정하에 사용자가 회원가입을 누르면 아래사진과 같이 createAccount를 호출한다고 하면요. 해당 유저는 자신의 address, public key 정보만 받을 수 있기 때문에 출금이나 송금 요청할 수 없잖아요. 이 두 가지 동작을 하려면 어떻게 해야 되나요?

(1) A 유저( 계정 생성 요청 )----- > Server ( caver.kas.wallet.createAccount() ) -----> KAS

(2) A 유저 <--------------- Server (return값 전달) <------------- KAS ( return publicKey, address )

(3) A 유저 (송금 요청) -----> Server ( kip7.transfer(B.address, 10, {from: A.주소} ) -----> B 유저

(3)번에서 Server에서 A유저의 private key가 필요한데, 이걸 어떻게 해결할 수 있을까요?

2. API로 특정 주소의 토큰 보유량은 어떻게 확인할 수 있을까요?
caver-js-ext-kas 사용중입니다.

3. 제 업비트 계정의 이더리움 주소로 자체 발행한 토큰을 보내주려고 한다면 어떤 API를 사용해야될까요?
혹시 예제가 있을까요?

이거 궁금하네요
@colin.kim .

@okay 이게 답변이 덜 되었었군요. 죄송합니다.

  1. KAS 내부적으로 private key를 관리하기 때문에 wallet API를 사용하시고 from 주소에 wallet API에서 관리하는 계정을 넣어주시면 KAS 내부적으로 서명을 진행하여 트랜잭션을 생성하고 클레이튼 네트웍으로 전파합니다.
    클레이 전송 트랜잭션 을 이용하시되, from 주소를 KAS에서 생성한 주소값을 넣어주시면 KAS에서 자동으로 서명을 생성합니다.

  2. KLAY 보유량을 확인하시려면 EOA로 계정 정보 확인하기 를 참고 부탁드립니다. getAccount 대신 getBalance 함수를 사용하셔도 됩니다.
    만약 KIP-7 토큰의 보유량을 확인하시려면 현재는 caver-js를 사용하셔야 합니다. 물론 caver-js-ext-kas가 caver-js를 포함하고 있기 때문에 실행하시는데에는 큰 어려움은 없을 것 같습니다. kip7.balanceOf 를 참고 부탁드립니다.

  3. 해당하는 기능은 제공하고 있지 않습니다. KAS API는 Klaytn network을 이용하는 기능들만 제공하고 있기 때문에 이더리움 주소로 전송하는 기능은 제공하지 않습니다.

감사합니다.