Download OpenAPI specification:Download
KIP-17 API는 블록체인 어플리케이션(BApp) 개발자들이 Klaytn의 대체불가토큰(NFT) 기술 표준인 KIP-17에 따라 생성된 컨트랙트 및 토큰을 관리하는 것을 도와줍니다. KIP-17 API의 다양한 엔드포인트를 사용하여 다음 작업을 수행할 수 있습니다.
또한 caver와 같은 SDK를 이용하여 Klaytn 네트워크에 컨트랙트를 생성한 경우도 컨트랙트 주소와 Wallet API 계정을 활용해 컨트랙트 및 토큰을 관리할 수 있습니다.
KAS에 대한 자세한 정보는 KAS Docs를 참고해 주세요. 질문이 있으시다면 언제든지 KAS 개발자 포럼에 남겨주세요.
별칭
KIP-17 API에서는 파라미터로 컨트랙트 주소가 요구될 때 **별칭(alias)**을 대신 쓸 수 있습니다. 컨트랙트 배포시 원하는 별칭을 지정하면 이후 API 호출 시 복잡한 주소를 사용할 필요가 없습니다.
KIP-17 v2부터 Ownable 인터페이스를 추가했습니다. 이제 컨트랙트를 배포할 때 컨트랙트 소유자를 지정할 수 있습니다. 컨트랙트 소유자가 소유권을 포기하거나 이전할 수 있고, 특정 컨트랙트 소유자를 조회하는 기능도 지원합니다. KIP-17 v1으로 배포한 기존 컨트랙트는 OpenSea 컬렉션 수정 기능을 활용할 수 없는 반면 v2를 활용한 컨트랙트는 컨트랙트 소유자가 직접 컬렉션을 수정할 수 있습니다.
소유권 관련 추가 API를 제외한 기존 기능은 그대로 사용하며, KIP-17 v1으로 배포한 컨트랙트와 호환됩니다. 단, v2로 배포한 컨트랙트는 v2 API만 사용하세요.
KAS KIP-17 서비스에서는 트랜잭션 전송 시 4가지 수수료 지불 방법을 지원합니다.
1. KAS 글로벌 대납 계정만 사용하는 경우
KAS 글로벌 대납 계정을 이용하여 모든 트랜잭션을 전송합니다.
{
"options": {
"enableGlobalFeePayer": true
}
}
2. 사용자 대납 계정을 이용하는 경우
사용자 대납 계정을 이용하여 모든 트랜잭션을 전송합니다.
{
"options": {
"enableGlobalFeePayer": false,
"userFeePayer": {
"krn": "krn:1001:wallet:20bab367-141b-439a-8b4c-ae8788b86316:feepayer-pool:default",
"address": "0xd6905b98E4Ba43a24E842d2b66c1410173791cab"
}
}
}
3. KAS 글로벌 대납 계정 + 사용자 대납 계정을 모두 이용하는 경우
기본적으로 사용자 대납 계정으로 트랜잭션을 전송하되, 해당 계정의 잔액이 부족한 경우 KAS 글로벌 대납 계정을 사용합니다.
{
"options": {
"enableGlobalFeePayer": true,
"userFeePayer": {
"krn": "krn:1001:wallet:20bab367-141b-439a-8b4c-ae8788b86316:feepayer-pool:default",
"address": "0xd6905b98E4Ba43a24E842d2b66c1410173791cab"
}
}
}
4. 대납 계정을 사용하지 않는 경우
일반적인 방법으로 트랜잭션을 전송하고, 보내는 계정으로 수수료를 지불합니다.
{
"options": {
"enableGlobalFeePayer": false
}
}
공통 에러 Unauthorized
는 호출하는 API 종류에 상관없이 인증 시스템이 정상적으로 실행되지 않으면 발생합니다.
401: Unauthorized
Code | Message | Description |
---|---|---|
1010009 | invalid credential | 자격증명 정보가 유효하지 않습니다. |
KAS는 Basic HTTP Auth를 사용하며, 모든 요청에 반드시 올바른 Authorization 헤더가 포함되어 있어야 합니다. KAS Console에서 발급 받은 AccessKey ID를 username
으로, Secret AccessKey를 password
를 이용하여 Authorization 헤더를 생성하십시오.
NOTE
KAS 계정의 Credential은 KAS의 모든 서비스 사용, 그리고 Klaytn 계정의 자산 이동이나 트랜잭션 실행 등 Wallet API로 생성된 Klaytn 계정에 대한 모든 권한을 부여합니다. KAS와 Klaytn 계정 보안을 위해 KAS API 인증 키(Secret Access Key)를 타인에게 함부로 공유하지 말고 주의해 관리하십시오.
cURL
curl --location --request GET 'https://kip17-api.klaytnapi.com/v2/contract' \
-u ${your_accessKeyId}:${your_secretAccessKey} \
--header 'x-chain-id: 1001' \
--header 'Content-Type: application/json'
Security Scheme Type | HTTP |
---|---|
HTTP Authorization Scheme | basic |