# Klip send card 호출 시 send error invalid contract 오류

**URL:** <https://devforum.kaia.io/t/klip-send-card-send-error-invalid-contract/1906>\
**Category:** Klip (아카이브)\
**Created:** [9월 24, 2021, 4:04오전 UTC](https://devforum.kaia.io/t/klip-send-card-send-error-invalid-contract/1906 "2021-09-24T04:04:35Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![11149](https://avatars.discourse-cdn.com/v4/letter/1/da6949/32.png) [@11149](https://devforum.kaia.io/u/11149)\
**Post date:** [9월 24, 2021, 4:04오전 UTC](https://devforum.kaia.io/t/klip-send-card-send-error-invalid-contract/1906/1 "2021-09-24T04:04:35Z")

</div>

안녕하세요.

아래 가이드(사용자가 보유한 카드(NFT)를 특정 주소로 전송하는 요청)를 따라 테스트를 진행중에 있는데요

> **[JavaScript SDK](https://docs.klipwallet.com/a2a-sdk/a2a-sdk-js#prepare-sendcard)**
>
> 이 페이지에서는 BApp에서 Klip을 활용하기 위한 App2App JavaScript SDK를 설명합니다.

> > > prepare.sendCard({ bappName, sender, to, tokenId, contractAddr, successLink, failLink })  
> > > 을 실행하면  
> > > send error invalid contract 와 같은 오류가 떨어집니다.

사용한 contractAddr은 klip partners를 통해 발급받은 SCA주소이고, tokenId또한 해당 주소로 발행된 토큰Id 입니다.

해당오류가 버그인지, 제가 놓친부분이 있는 건지 확인을 요청드립니다.  
(내용확인에 필요하신 경우 SCA주소를 공유하도록 하겠습니다)

감사합니다.

---

<div class="post-metadata">

**Author:** ![\_albert](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/_albert/32/60_2.png) [@\_albert](https://devforum.kaia.io/u/_albert)\
**Post date:** [9월 24, 2021, 5:47오전 UTC](https://devforum.kaia.io/t/klip-send-card-send-error-invalid-contract/1906/2 "2021-09-24T05:47:27Z")

</div>

안녕하세요 🙂

말씀하신 에러는 Klip에 등록되지 않는 contract 주소로 NFT 전송을 시도할 때 발생합니다. 이미 사용중이신 파트너스 컨트랙트라면 동작해야 맞는데요, 주소를 알려주시면 확인해보겠습니다.

---

<div class="post-metadata">

**Author:** ![11149](https://avatars.discourse-cdn.com/v4/letter/1/da6949/32.png) [@11149](https://devforum.kaia.io/u/11149)\
**Post date:** [9월 24, 2021, 6:04오전 UTC](https://devforum.kaia.io/t/klip-send-card-send-error-invalid-contract/1906/3 "2021-09-24T06:04:57Z")

</div>

네 사용한 contract address는 0x0f13a3Fd2861646df38c77DB4FF34d2941E6848E 입니다

혹시몰라 테스트에 사용한 params 모두 공유 드립니다.  
“contractAddr”: “0x0f13a3Fd2861646df38c77DB4FF34d2941E6848E”,  
“tokenId”: “0x48b”,  
“sender” : “0xbaDB3b987dF530b8254416EEeC295178b4D538BB”,  
“owner” : “0xbaDB3b987dF530b8254416EEeC295178b4D538BB”,  
“to” : “”

감사합니다 🙂

---

<div class="post-metadata">

**Author:** ![\_albert](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/_albert/32/60_2.png) [@\_albert](https://devforum.kaia.io/u/_albert)\
**Post date:** [9월 24, 2021, 7:04오전 UTC](https://devforum.kaia.io/t/klip-send-card-send-error-invalid-contract/1906/4 "2021-09-24T07:04:52Z")

</div>

아마도 SCA가 제대로 전달이 안 된 것 같은데요, docs에 나온 파라미터 명칭을 맞춰서 호출하셨을까요? 참고로 "contractAddress"가 아닌 "contract"라는 이름으로 전달해주셔합니다. 혹시 파라미터 이름을 맞춰도 안 되시는 경우 사용하신 코드를 올려주시면 답변을 드리는데 도움이 될 것 같습니다. 코드를 넣기 어려우신 경우 REST API 형태로 바꿔서 올려주시면 좋을 것 같습니다.

```auto
const res = await prepare.sendCard({ bappName, from, to, id, contract, successLink, failLink })
if (res.err) {
  setErrorMsg(res.err)
} else {
  setRequestKey(res.request_key)
}

```

---

<div class="post-metadata">

**Author:** ![11149](https://avatars.discourse-cdn.com/v4/letter/1/da6949/32.png) [@11149](https://devforum.kaia.io/u/11149)\
**Post date:** [9월 24, 2021, 7:39오전 UTC](https://devforum.kaia.io/t/klip-send-card-send-error-invalid-contract/1906/5 "2021-09-24T07:39:16Z")

</div>

호출하는 코드스니펫입니다!

const klipKip17Transfer= async function (req,res){  
console.log(req.body)  
const bappName = process.env.REACT\_APP\_BAPP\_NAME  
var contract = isEmpty(req.body.contractAddr)?"":req.body.contractAddr  
var id = isEmpty(req.body.tokenId)?"":req.body.tokenId  
var from = isEmpty(req.body.sender)?"":req.body.sender  
var owner = isEmpty(req.body.owner)?"":req.body.owner  
var to = isEmpty(req.body.to)?"":req.body.to

const successLink = ‘’  
const failLink = ‘’  
// const r = await prepare.executeContract({ bappName, from, to, value, abi, params, successLink, failLink })  
const r = await prepare.sendCard({ bappName, from, to, id, contract, successLink, failLink })  
if (r.err) {  
console.log(‘send error’, r.err)

} else if (r.request\_key) {  
console.log(‘request key’, r.request\_key)

}  
}

말씀주신대로 파라미터 명칭을 가이드대로 수정하여 해보니 이제는 send error invalid contract 오류는 나지 않는데요,

그런데 이번엔 send error invalid card id. 이렇게 나오네요^^;  
해당 컨트랙트로발행된 tokenId를 썼는데도요.  
(정확한 테스트 데이터를 사용하기위해 klaytn API를 통해 해당 소유자가 가지고 있는 토큰리스트 불러오는 API 결과값을 활용하였습니다.)

 ![image](https://canada1.discourse-cdn.com/flex035/uploads/klaytn/original/1X/4ac0df069be50656a54b38a2161c69b5a0c0aec7.png)

사용한 데이터 :  
{  
“contractAddr”: “0x0f13a3Fd2861646df38c77DB4FF34d2941E6848E”,  
“tokenId”: “0x48c”,  
“sender” : “0xbaDB3b987dF530b8254416EEeC295178b4D538BB”,  
“owner” : “0xbaDB3b987dF530b8254416EEeC295178b4D538BB”,  
“to” : “0xbaDB3b987dF530b8254416EEeC295178b4D538BB”  
}

(참고로 to에 해당하는 주소를 from과 다른 주소로해도 오류는 같았습니다.)

지속적인 지원에 감사드립니다!

---

<div class="post-metadata">

**Author:** ![\_albert](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/_albert/32/60_2.png) [@\_albert](https://devforum.kaia.io/u/_albert)\
**Post date:** [9월 24, 2021, 7:44오전 UTC](https://devforum.kaia.io/t/klip-send-card-send-error-invalid-contract/1906/6 "2021-09-24T07:44:08Z")

</div>

혹시 id (tokenId)를 16진수가 아닌 10진수로 바꿔서 호출하셔도 같은 에러가 나는지 확인 부탁드립니다~

---

<div class="post-metadata">

**Author:** ![11149](https://avatars.discourse-cdn.com/v4/letter/1/da6949/32.png) [@11149](https://devforum.kaia.io/u/11149)\
**Post date:** [9월 24, 2021, 7:48오전 UTC](https://devforum.kaia.io/t/klip-send-card-send-error-invalid-contract/1906/7 "2021-09-24T07:48:23Z")

</div>

아 id = caver.utils.toBN(id).toString() 요렇게 변환해주니 잘 동작합니다!

해결에 도움을 주셔서 정말 감사합니다 🙂 🙂
