Http://wallet-api.klaytnapi.com/v2/tx/value 호출 시 Credential나 from주소의 비밀번호는 입력하지 않나요?

토큰전송트랜잭션 API를 호출 할때
KAS Reference Documentation 링크를 참고하여
스키마를 입력하고 호출했는데 "incorrect request"라는 응답을 받았습니다

스키마 데이터는
http://wallet-api.klaytnapi.com/v2/account를 통해 2개를 생성하였고
API응답값의 계정주소들을 이용해서 from과 to에 입력했었습니다

ps. 제가 블록체인을 공부하고 있는 초급개발자라서 질문글을 이해하시기 힘드실거 같아서 죄송스럽네요ㅜㅜ

from의 비밀번호나 private key같은 정보들은 입력받지 않는거 같은데 어떻게 호출해야 하는지 문의드립니다.

API를 호출하실 때 Basic Auth를 이용하여 해당 요청이 어떤 KAS account의 요청인지 구분하게 됩니다.

Wallet API에서 만든 계정들은 모두 해당 KAS Account가 소유한 계정이고 이 KAS Account의 API credential을 이용하여 인증을 하게 됩니다.

이후 내부적으로 KAS Wallet API 내부에 저장된 private key를 통해 서명을 진행하게 되므로 따로 private key를 입력하실 필요는 없습니다.

API Credential에 대해서는 인증 키 생성하기 페이지를 참고 부탁드립니다.

감사합니다.

답변 감사합니다.

credential을 생성하고 생성한 private key와 accessKey를 postman의 헤더 부분에 Basic Auth를 선택하고
Username과 Password에 입력하고 응답받은 결과가

{
“code”: 1060400,
“message”: “incorrect request”
}

이렇게 왔습니다.

호출할 때의 from 계정에 console의 Account Pools메뉴에서 테스트용 클레이를 충전하고 호출하였습니다.

이거는 어떻게 해결해야 하는지 문의드립니다

[2021. 05. 28]
raw를 이용하니까 정상적으로 응답을 받았습니다

그러면 이 API를 이용하여 저희가 서비스를 이용하는 각 고객들끼리의 토큰이체를 지원하려고 하는데
이 API를 이용해도 될까요??

지금으로써는 KAS콘솔의 credential에 등록해서 그 credentail을 이용하여 이체 API를 이용하는 것처럼 보여지는데
고객이 credential정보 등록을 원치 않았을 경우 대체가능한 API가 있는지 문의드립니다.

안녕하세요, 마지막 질문은 서비스에서 private key를 어떻게 관리할거냐에 따라 달라질 것 같습니다.

  1. private key를 사용자가 알아서 보관 - Kaikas/Klip과 같은 지갑과 연동
  2. private key를 서비스에서 알아서 보관 - 별도의 private key 관리 구조를 가지고 사용자에겐 private key에 대한 정보를 노출하지 않음.

KAS Wallet API는 기본적으로 2번을 가정하여 설계하고 구현했습니다. 서비스에서 private key를 어떤식으로 가져가실건지 고민을 하시고 맞는 구현을 사용하시면 될 것 같습니다.

감사합니다.

감사합니다.

그렇다면 private key를 등록한 고객을 저희가 알아서 보관, 별도의 private key를 생성하는 것으로 이해했는데
private key 등록을 원치 않는 고객들은 “http://wallet-api.klaytnapi.com/v2/tx/value” API를 사용하지 못한다는 말씀이신가요??

네, 해당하는 API는 tx.from의 private key가 KAS Wallet API 안에 있다는 가정하에 만들어져 있습니다.

private key가 외부에 있는 경우, 직접 트랜잭션을 생성하시고 Node API를 통해 클레이튼 네트워크에 전송하실 수 있습니다.

대납 트랜잭션을 원하실경우 RLP를 직접 전송할 수 있는 v2/tx/fd/rlp를 사용하실 수도 있습니다.

감사합니다.

1 Like

감사합니다.

답변을 기다리는 동안 다른분들의 글을 참고하여
마이그래이션 방법을 생각해봤습니다.

  1. 공개키 생성(/v2/key)로 키생성
    • 1개
  2. 계정업데이트 트랜잭션생성 (caver.java / feeDelefationAccountTransaction)
    • RLP획득
  3. KAS 계정등록 API(/v2/registration/account) 호출
    • from에 마이그래이션할 사용자의 adress
  4. 마이그래이션완료

이렇게 하면 KAS로 마이그래이션이 완료되는건가요??
API응답값을 보면 "ok"만 받을 수 있고 private key가 없는것 같아서 문의드립니다.

궁극적으로는 cypress에서 운영하던 지갑 계정을 AWS를 이용하여 EN노드로 운영하고 있는데
이 EN노드 대신에 KAS로 이관하려고 합니다.

안녕하세요, 외부에서 사용하던 계정을 KAS Wallet API로 마이그레이션 하는 기능은 KAS로 Klaytn 계정 마이그레이션하기 에 설명이 되어 있으니 참고 부탁드립니다.

private key는 KAS Wallet API 내부 HSM에서 관리되기 때문에 확인하실 수 없습니다.

감사합니다.

해당 문서를 지난주 금요일에 확인해봤는데

  1. "https://wallet-api.klaytnapi.com/v2/key"를 통해 key생성
  2. 응답으로 받은 krnID를 계정업데이트(SDK)를 활용
  3. 앞서 호출한 계정업데이트의 응답으로 받은 rlp, keyId를 Input으로 “https://wallet-api.klaytnapi.com/v2/registration/account” 호출
  4. 성공/실패 응답

성공 시 해당 사용자의 PublicKey만 저희가 따로 관리하고 PublicKey로 KAS의 이체 트랜젝션을 호출하면 되는건가요?