# KAS를 사용중인데 KAS 외부 계정의 private key 로 트랜잭션을 실행하고 싶습니다. 어떻게 하나요?

**URL:** <https://devforum.kaia.io/t/kas-kas-private-key/2955>\
**Category:** Kaia Wallet\
**Tags:** caver-java\
**Created:** [12월 25, 2021, 2:25오전 UTC](https://devforum.kaia.io/t/kas-kas-private-key/2955 "2021-12-25T02:25:42Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![seungbaek.lee](https://avatars.discourse-cdn.com/v4/letter/s/ed655f/32.png) [@seungbaek.lee](https://devforum.kaia.io/u/seungbaek.lee)\
**Post date:** [12월 25, 2021, 2:25오전 UTC](https://devforum.kaia.io/t/kas-kas-private-key/2955/1 "2021-12-25T02:25:42Z")

</div>

아래 같은 코드를 Baobab 에서는 실행되는데 Cypress 에서는 어떻게 실행해야 하나요?  
KAS를 사용중인데 KAS 외부 계정의 private key 로 트랜잭션을 실행하고 싶습니다.  
어떻게 해야 하나요?

```auto
Caver caver = new Caver("https://api.baobab.klaytn.net:8651");
SingleKeyring executor = KeyringFactory.createFromPrivateKey("0x{private key}");
caver.wallet.add(executor);
try {
    Contract contract = new Contract(caver, ABI, '0x{address in hex}');
    
    SendOptions sendOptions = new SendOptions();
    sendOptions.setFrom(executor.getAddress());
    sendOptions.setGas(BigInteger.valueOf(40000))
    TransactionReceipt.TransactionReceiptData receipt = contract.getMethod("set").send(Arrays.asList("testValue"), sendOptions);
    } catch (IOException | TransactionException | ClassNotFoundException | NoSuchMethodException | InvocationTargetException | InstantiationException | IllegalAccessException e) {
    //handle exception..
}

```

---

<div class="post-metadata">

**Author:** ![Denver](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/denver/32/557_2.png) [@Denver](https://devforum.kaia.io/u/Denver)\
**Post date:** [12월 27, 2021, 1:19오전 UTC](https://devforum.kaia.io/t/kas-kas-private-key/2955/2 "2021-12-27T01:19:32Z")

</div>

@seungbaek.lee

안녕하세요.  
사용하시는 소스코드 그대로 사용 가능하십니다.

다만 Caver 객체를 생성하실 때 매개변수로 주는 Endpoint URL 값을 KAS의 NodeAPI URL인 `https://node-api.klaytnapi.com/v1/klaytn` 을 주시면 되겠습니다. 🙂

---

<div class="post-metadata">

**Author:** ![seungbaek.lee](https://avatars.discourse-cdn.com/v4/letter/s/ed655f/32.png) [@seungbaek.lee](https://devforum.kaia.io/u/seungbaek.lee)\
**Post date:** [12월 27, 2021, 1:53오전 UTC](https://devforum.kaia.io/t/kas-kas-private-key/2955/3 "2021-12-27T01:53:16Z")

</div>

빠른 답변 감사합니다.

Caver caver = new Caver(“[https://public-node-api.klaytnapi.com/v1/cypress](https://public-node-api.klaytnapi.com/v1/cypress)”);

Endpoint URL 로 퍼블릭 노드인 [https://public-node-api.klaytnapi.com/v1/cypress](https://public-node-api.klaytnapi.com/v1/cypress) 과는 어떤 차이가 있나요?

얼마전부터 퍼블릭 노드를 지원한걸로 포럼에서 보았는데요. 퍼블릭 노드는 사용량 제한이 있다고 보았습니다.

[https://node-api.klaytnapi.com/v1/klaytn](https://node-api.klaytnapi.com/v1/klaytn) 를 사용해서 KAS 키를 이용해서 사용량 계약에 따라 호출하려면 어떻게 해야 할까요?

2021년 12월 27일 (월) 오전 10:29, Klaytn Developers Forum를 통한 Denver \<[klaytn@discoursemail.com](mailto:klaytn@discoursemail.com)\>님이 작성:

---

<div class="post-metadata">

**Author:** ![Denver](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/denver/32/557_2.png) [@Denver](https://devforum.kaia.io/u/Denver)\
**Post date:** [12월 27, 2021, 2:06오전 UTC](https://devforum.kaia.io/t/kas-kas-private-key/2955/4 "2021-12-27T02:06:21Z")

</div>

@seungbaek.lee

퍼블릭 노드에는 말씀하신 것처럼 사용량 제한이 있습니다.  
따라서 다량의 요청이 예상되신다면 @seungbaek.lee 님의 KAS 계정에서 생성한 `Access Key`와 `Secret Key`를 사용하시는 것이 좀 더 좋을 거 같습니다.

KAS의 console에 들어가셔서 좌측 메뉴의 Security \> Credential 메뉴를 확인해보시면 AccessKey 생성 버튼이 있습니다. 해당 버튼을 눌러서 생성되는 `Access Key`와 `Secret Key`를 사용하셔서 Caver 객체를 생성하시면 됩니다.

[caver-java-examples/CaverExample.java at 2237e263617c20ea44017c8d4346bee851a25e81 · klaytn/caver-java-examples · GitHub](https://github.com/klaytn/caver-java-examples/blob/2237e263617c20ea44017c8d4346bee851a25e81/transaction/send_klay/src/main/java/CaverExample.java#L73-L76) 이 소스코드를 참고해보시면 힌트를 얻으실 수 있을 거 같습니다 🙂

이렇게 설정하시면 @seungbaek.lee 님의 계정에서 API 콜이 이루어질 때마다 호출 횟수가 그 계정에서 차감되게 됩니다.

감사합니다.

---

<div class="post-metadata">

**Author:** ![seungbaek.lee](https://avatars.discourse-cdn.com/v4/letter/s/ed655f/32.png) [@seungbaek.lee](https://devforum.kaia.io/u/seungbaek.lee)\
**Post date:** [12월 27, 2021, 2:37오전 UTC](https://devforum.kaia.io/t/kas-kas-private-key/2955/5 "2021-12-27T02:37:32Z")

</div>

예제 감사합니다~

문제 해결되었습니다.

2021년 12월 27일 (월) 오전 11:16, Klaytn Developers Forum를 통한 Denver \<[klaytn@discoursemail.com](mailto:klaytn@discoursemail.com)\>님이 작성:

---

<div class="post-metadata">

**Author:** ![seungbaek.lee](https://avatars.discourse-cdn.com/v4/letter/s/ed655f/32.png) [@seungbaek.lee](https://devforum.kaia.io/u/seungbaek.lee)\
**Post date:** [2월 7, 2022, 11:28오후 UTC](https://devforum.kaia.io/t/kas-kas-private-key/2955/6 "2022-02-07T23:28:23Z")

</div>

퍼블릭 노드 사용 시 FeePayer 를 KAS 콘솔의 KAS계정 feepayer 로 사용할 수 있나요? 가능하다면 바오밥에서 Global Fee Payer 도 사용가능 할까요?  
가능하다면 각각 어떻게 호출해야 하는지요?
