# 기존에 사용했던 멀티시그 지갑을 kas에서 사용하는 방법이 어떻게 되나요?

**URL:** <https://devforum.kaia.io/t/kas/664>\
**Category:** KAS (아카이브)\
**Tags:** caver-java\
**Created:** [2월 16, 2021, 3:52오전 UTC](https://devforum.kaia.io/t/kas/664 "2021-02-16T03:52:59Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![yoe21c](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/yoe21c/32/85_2.png) [@yoe21c](https://devforum.kaia.io/u/yoe21c)\
**Post date:** [2월 16, 2021, 3:52오전 UTC](https://devforum.kaia.io/t/kas/664/1 "2021-02-16T03:52:59Z")

</div>

안녕하세요.

현재 저희 서비스는 EOA 지갑을 멀티시그 지갑으로 업데이트해서 사용하고 있습니다.  
숫자는 대략 5만개 이상 됩니다.  
그런데 이 지갑을 KAS에서 사용하려면 어떻게 해야할까요?

1. 기존 멀티시그 지갑을 KAS로 어떻게 옮겨야 하나요?
2. 지갑한도가 200으로 설정되어 있는데 이 한도 때문에 영향이 있을까요?
3. 멀티시그의 오퍼레이터들만 옮겨서 기존 멀티시그 지갑들을 지원하는 방법은 어떤걸까요?

감사합니다.

---

<div class="post-metadata">

**Author:** ![\_Luffy](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/_luffy/32/33_2.png) [@\_Luffy](https://devforum.kaia.io/u/_Luffy)\
**Post date:** [2월 16, 2021, 4:50오전 UTC](https://devforum.kaia.io/t/kas/664/2 "2021-02-16T04:50:23Z")

</div>

@yoe21c  
안녕하십니까. KAS 개발팀입니다.  
1월 18일에 출시된 KAS v1.1 부터 마이그레이션 API 를 제공하고 있으며, 아래와 같이 사용이 가능합니다.

1. [키 생성 API](https://refs.klaytnapi.com/ko/wallet/latest#operation/KeyCreation)를 통해서 N개의 키를 생성 (keyId, public key 정보를 알 수 있음)
2. 로컬에서 마이그레이션 하고자 하는 address 를 (1) 에서 받은 public key 로 업데이트 하기 위한 Fee delegation account update transaction 을 만들어서 서명 (RLP 를 얻음)
3. address, keyId, RLP 를 [계정 등록 API](https://refs.klaytnapi.com/ko/wallet/latest#tag/Registration) 를 통해서 등록

크게는 위의 3가지 단계로 이루어집니다. 단, 위의 단계는 모든 계정이 Public key account 로 변경되기 때문에, multisig 키를 이용하려면 [다중 서명 튜토리얼](https://docs.klaytnapi.com/tutorial/wallet-transaction-api/wallet-transaction-multisig)을 참고하시어 계정 업데이트를 수행후에 사용할 수 있습니다.

계정 마이그레이션(Public key 계정으로)은 [caver-js-ext-kas](https://github.com/ground-x/caver-js-ext-kas/blob/0a3f574e36dc565f7e42e1b91d10b82ec9c00e1c/test/wallet/testWalletMigration.js#L106) 에서 SDK 사용법을 확인하실 수 있습니다.

코드 레벨의 조금더 상세한 프로세스를 확인하고 싶으시면, SDK 의 [마이그레이션 함수](https://github.com/ground-x/caver-js-ext-kas/blob/0a3f574e36dc565f7e42e1b91d10b82ec9c00e1c/src/kas/wallet/wallet.js#L289) 내부 로직을 확인하실 수도 있습니다.

추후 튜토리얼을 통해서 조금더 쉽게 사용하실수 있도록 노력하겠습니다.

감사합니다.

---

<div class="post-metadata">

**Author:** ![yoe21c](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/yoe21c/32/85_2.png) [@yoe21c](https://devforum.kaia.io/u/yoe21c)\
**Post date:** [2월 16, 2021, 12:01오후 UTC](https://devforum.kaia.io/t/kas/664/3 "2021-02-16T12:01:30Z")

</div>

자바스크립트 말고 자바버전의 예제가 있을까요?

---

<div class="post-metadata">

**Author:** ![yoe21c](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/yoe21c/32/85_2.png) [@yoe21c](https://devforum.kaia.io/u/yoe21c)\
**Post date:** [2월 16, 2021, 12:22오후 UTC](https://devforum.kaia.io/t/kas/664/4 "2021-02-16T12:22:29Z")

</div>

KAS 외부에서 adress1 이 operator1, operator2 로 서명된 멀티시그 지갑을 KAS 의 멀티시그 지갑으로 마이그레이션 했을 때의 시나리오는 어떻게 되나요?  
KAS 외부에서 사용된 operator1, operator2 를 그대로 이용해서 멀티시그의 operator로 활용하고 싶다면 어떻게 해야되나요?  
아직 이해가 되지 않아서 좀 자세한 설명이 필요합니다.

---

<div class="post-metadata">

**Author:** ![yoe21c](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/yoe21c/32/85_2.png) [@yoe21c](https://devforum.kaia.io/u/yoe21c)\
**Post date:** [2월 17, 2021, 2:53오전 UTC](https://devforum.kaia.io/t/kas/664/5 "2021-02-17T02:53:58Z")

</div>

안녕하세요.  
관련해서 진행하고 있는데요.  
RLP를 얻어올 때 아래처럼 코드를 작성했습니다.

```
    KeyCreationResponse keys = caver.kas.wallet.createKeys(1);

    Key key = keys.getItems().get(0);

    String address = "0x8bc43c7f5ddbb2fd42ebe8feceaa43f1ba361a0d";
    com.klaytn.caver.account.Account account = com.klaytn.caver.account.Account.createWithAccountKeyPublic(address, key.getPublicKey());

    FeeDelegatedAccountUpdate feeDelegatedAccountUpdate = new FeeDelegatedAccountUpdate.Builder()
            .setKlaytnCall(caver.rpc.klay)
            .setFrom(address)
            .setGas(BigInteger.valueOf(250000))
            .setAccount(account)
            .build();

    AbstractFeeDelegatedTransaction tx = caver.wallet.signAsGlobalFeePayer(feeDelegatedAccountUpdate);

```

아래처럼 오류가 발생합니다.  
{“code”:1065100,“message”:“failed to get an account from AMS; data don’t exist”,“requestId”:“f1bd96df-24c1-4808-8d89-6a7b19a14b2e”}

즉 해당 address 가 미리 등록되어 있어야 하는건가요?  
저는 KAS 외부에서 생성해서 사용하는 address 를 등록하는것에 대해서 궁금한거라서요.  
제가 잘못 이해하고 있는 부분이 있을까요?

---

<div class="post-metadata">

**Author:** ![yoe21c](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/yoe21c/32/85_2.png) [@yoe21c](https://devforum.kaia.io/u/yoe21c)\
**Post date:** [2월 17, 2021, 4:00오전 UTC](https://devforum.kaia.io/t/kas/664/6 "2021-02-17T04:00:42Z")

</div>

햇갈리는 부분 있어서 재문의합니다.  
답변주신 address 는 KAS 내부의 주소를 말씀하시는건가요?  
아니면 KAS 외부에서 사용되던 주소를 말씀하시는건가요?  
KAS 외부에서 사용된 주소라면 그 주소를 등록할수가 있는것 맞을까요?

---

<div class="post-metadata">

**Author:** ![\_Luffy](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/_luffy/32/33_2.png) [@\_Luffy](https://devforum.kaia.io/u/_Luffy)\
**Post date:** [2월 17, 2021, 5:03오전 UTC](https://devforum.kaia.io/t/kas/664/7 "2021-02-17T05:03:06Z")

</div>

안녕하십니까.

`feeDelegatedAccountUpdate` 의 RLP 를 이용하여, [계정 등록하는 API](https://refs.klaytnapi.com/ko/wallet/latest#operation/RegisterAccount) 를 통해서 등록하셔야 사용할 수 있게 됩니다.

이 때 계정의 주소는 @yoe21c 님이 가지고 계신 계정 주소를 의미하며, 키는 [키 생성 API](https://refs.klaytnapi.com/ko/wallet/latest#operation/KeyCreation) 에서 생성된 `keyID` 를 의미합니다.

---

<div class="post-metadata">

**Author:** ![yoe21c](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/yoe21c/32/85_2.png) [@yoe21c](https://devforum.kaia.io/u/yoe21c)\
**Post date:** [2월 17, 2021, 5:04오전 UTC](https://devforum.kaia.io/t/kas/664/8 "2021-02-17T05:04:14Z")

</div>

네, 감사합니다.  
이 부분은 이해가 되었습니다.  
감사합니다.
