# Caver를 통한 KIP-17 배포, global fee payer

**URL:** <https://devforum.kaia.io/t/caver-kip-17-global-fee-payer/3707>\
**Category:** Kaia\
**Tags:** erc-721\
**Created:** [2월 10, 2022, 1:20오후 UTC](https://devforum.kaia.io/t/caver-kip-17-global-fee-payer/3707 "2022-02-10T13:20:51Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![pavilion20bw](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/pavilion20bw/32/1708_2.png) [@pavilion20bw](https://devforum.kaia.io/u/pavilion20bw)\
**Post date:** [2월 10, 2022, 1:20오후 UTC](https://devforum.kaia.io/t/caver-kip-17-global-fee-payer/3707/1 "2022-02-10T13:20:51Z")

</div>

안녕하세요

> <https://github.com/ground-x/kas-bapp-luxurytracker/blob/master/server.js#L145>

위 링크를 보면 개인키를 통한 계정생성으로 KIP-17 컨트랙을 배포 할 수 있는데

```auto
  const keyring = caver.wallet.keyring.createFromPrivateKey(
    req.body.sellerPrivateKey
  );
  const kip17 = await caver.kct.kip17.deploy(
    {
      name: req.body.name,
      symbol: req.body.symbol,
    },
    keyring.address
  );

```

이러면 컨트랙의 owner는 개인키를 사용한 계정이 되는것이고 그 후에 실질적으로 민팅을 하게 될 때

```auto
const kip17 = new caver.kct.kip17(kip17.options.address);
await kip17.mintWithTokenURI(....)

```

실행 후 청구되는 수수료는 KAS에서 알아서 계산하는건가요?  
혹시 KAS콘솔 credentials에서 설정한 accessKeyId, secretAccessKey를 통해서 청구가 되는것인지 궁금합니다.

---

<div class="post-metadata">

**Author:** ![lorance.call](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/lorance.call/32/1653_2.png) [@lorance.call](https://devforum.kaia.io/u/lorance.call)\
**Post date:** [2월 10, 2022, 3:24오후 UTC](https://devforum.kaia.io/t/caver-kip-17-global-fee-payer/3707/2 "2022-02-10T15:24:08Z")

</div>

트랜잭션의 서명을 진행하는 지갑으로 결제가됩니다.

예를들어 해당 코드를 그대로 느시면 KAS 에 등록된 지갑에 잔고가있는경우 진행되고, 아니면 revert 가 발생합니다.

해당 KAS 계정에 global fee payer 설정을 하셨고, 트랜잭션을 global fee payer 로 수행하시면, 비용은 해당 설정된 계정으로 청구되고, KAS 에서 비용청구하는 구조가 가능하고요. 이부분은 아래링크에서 KIP17FeePayerOptions 항목 참고해주시고

[https://refs.klaytnapi.com/en/sdk/js/latest/](https://refs.klaytnapi.com/en/sdk/js/latest/)

[Fee Delegation Example - Klaytn Docs](https://ko.docs.klaytn.com/dapp/tutorials/fee-delegation-example)  
위의 예제도 참고해주시면 될것 같습니다.

진행이 어려우시면 KAS 카테고리쪽으로 문의주시면 될것같습니다.

사용자가 비용을 지불하는 경우에는 caver 객채를 생성할때, provider를 Kaikas 에서 제공하는 provider를 사용하시면 됩니다. 이경우 mint 관련함수가 onlyMinter 나 onlyOwner 등의 modifier가 지정되어있지 않아야합니다.

도움이 되셨길 바라며, 덧붙혀 포럼 이용시 카테고리에 맞춰서 질문해주시면 더 빠른답변 얻으실것으로 예상합니다.
