# Kip17 (NFT) 전송에 대해서 문의 드립니다

**URL:** <https://devforum.kaia.io/t/kip17-nft/333>\
**Category:** Caver\
**Created:** [9월 7, 2020, 2:14오전 UTC](https://devforum.kaia.io/t/kip17-nft/333 "2020-09-07T02:14:54Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![reinforcement](https://avatars.discourse-cdn.com/v4/letter/r/278dde/32.png) [@reinforcement](https://devforum.kaia.io/u/reinforcement)\
**Post date:** [9월 7, 2020, 2:14오전 UTC](https://devforum.kaia.io/t/kip17-nft/333/1 "2020-09-07T02:14:54Z")

</div>

안녕하세요. NFT 전송(대납 계정 이용)에 대해서 문의드립니다.

NFT의 contract address는 알고 있으며, 아래와 같이 transfer를 진행하려고 합니다.

klaytn docs의 내용을 살펴보고 있는 중입니다.

const kip17Instance = new caver.klay.KIP17(address)  
…  
kip17Instance.transferFrom(from, to, tokenId [, sendParam])

tokenId는 발행된 NFT의 index로 이해하고 있습니다.

위와 같이 instance를 통해(대납 계정을 이용하여 gas fee를 지불하고자 합니다.)  
transferFrom을 구현하는데 참고할만한 내용을 부탁드립니다.

---

<div class="post-metadata">

**Author:** ![Jamie](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/jamie/32/1472_2.png) [@Jamie](https://devforum.kaia.io/u/Jamie)\
**Post date:** [9월 7, 2020, 2:32오전 UTC](https://devforum.kaia.io/t/kip17-nft/333/2 "2020-09-07T02:32:05Z")

</div>

안녕하세요, 먼저 질문 해 주셔서 감사합니다. 🙂

안타깝게도 현재 대납의 경우, 현재 Contract/KIP7/KIP17를 사용할 수 없습니다.

대납을 사용하려면`FEE_DELEGATED_SMART_CONTRACT_EXECUTION` 유형의 트랜잭션을 생성하여 네트워크로 전송해야합니다.

아래 예제 코드를 참조해 주세요.  
트랜잭션을 생성 할 때 필드에 설정된 값을 호출하려는 KIP-17 토큰 컨트랙트에 맞게 수정해주세요.

```
const caver = new Caver('https://api.baobab.klaytn.net:8651/')

const sender = caver.klay.accounts.wallet.add('0x{private key}')
const feePayer = caver.klay.accounts.wallet.add('0x{private key}')

const contractAddress = '0x{address in hex}'
const tokenId = '4321'

const fdTransaction = {
    type: 'FEE_DELEGATED_SMART_CONTRACT_EXECUTION',
    from: sender.address,
    to: contractAddress,
    data: caver.klay.abi.encodeFunctionCall(
        {
            constant: false,
            inputs: [{ name: 'from', type: 'address' }, { name: 'to', type: 'address' }, { name: 'tokenId', type: 'uint256' }],
            name: 'transferFrom',
            outputs: [],
            payable: false,
            stateMutability: 'nonpayable',
            type: 'function',
        },
        ['0x60498fEFBF1705A3Db8d7Bb5c80D5238956343e5', '0x8723590d5D60e35f7cE0Db5C09D3938b26fF80Ae', tokenId]
    ),
    gas: 300000,
}

// Sign transaction as a sender.
const signed = await caver.klay.accounts.signTransaction(fdTransaction)
console.log(signed)

// Sign transaction as a fee payer with RLP-encoded string that includes signature of sender(signed.rawTransaction)
const feePayerSigned = await caver.klay.accounts.feePayerSignTransaction(signed.rawTransaction, feePayer.address)
console.log(feePayerSigned)

const receipt = await caver.klay.sendSignedTransaction(feePayerSigned)
console.log(receipt)
```

---

<div class="post-metadata">

**Author:** ![reinforcement](https://avatars.discourse-cdn.com/v4/letter/r/278dde/32.png) [@reinforcement](https://devforum.kaia.io/u/reinforcement)\
**Post date:** [9월 7, 2020, 9:23오전 UTC](https://devforum.kaia.io/t/kip17-nft/333/3 "2020-09-07T09:23:59Z")

</div>

네, 공유주신대로 문제없이 진행했습니다.  
늘 감사합니다.  
🙂 @Jamie
