이 페이지는 Klip Partners에 로그인하고 카드를 발행, 조회, 전송, 삭제하기 위한 API를 소개합니다.
Kaia는 기존의 Klaytn과 Finschia 블록체인 네트워크가 통합되어 운영되는 블록체인의 새 이름입니다. 이에 따라 본 문서는 대부분 Klaytn을 Kaia로 / KLAY를 KAIA로 지칭하지만, 하위 호환성을 위해 기존 호출과 응답에서 사용되던 klaytn, KLAY 등의 키워드는 동일하게 유지되는 점 참고 부탁드립니다.
Klip Partners API Reference
계정 관리
계정 관리 API에는 로그인(Sign In), 비밀번호 변경(Change Password), 핀 번호 변경(Change Pin)이 있습니다.
Sign In
Sign In
POSThttps://api.klipwallet.com/v2/partner/auth
가입을 승인받은 후, 가입 시 입력한 이메일 주소와 비밀번호로 Klip Partners에 로그인합니다.
Headers
Name
Type
Description
Content-Type*
string
application/json
Request Body
Name
Type
Description
email*
string
가입자 이메일 주소이며 로그인 계정으로 사용됩니다.
password*
string
가입자 로그인 비밀번호입니다. 웹사이트에 가입 시 사용한 비밀번호에 SHA256 해시를 적용하여 전송합니다.
"bad request": 잘못된 요청입니다. Request 파라미터를 다시 확인하십시오.
"not found user info in db": 계정 정보가 존재하지 않습니다.
"banned accounts cannot login": 제재 계정은 로그인할 수 없습니다.
"suspended accounts cannot login": 정지 계정은 로그인할 수 없습니다.
"not yet approved": 아직 가입이 승인되지 않았습니다.
"invalid password": 비밀번호가 일치하지 않습니다.
로그인할 수 없습니다.
Klip Partners 웹사이트는 허가된 사용자만 접근 가능하나, Klip Partners 서비스가 2024년 7월 31일자로 종료되어 현재는 신규 가입 신청을 받지 않고 있습니다. 아울러 기존 사용자 역시 2024년 8월 1일부터 Klip Partners API를 호출할 수 없습니다.
카드 관리 API에는 카드 이미지 업로드(Upload Image), 모든 사용자에게 카드 발행(Mint Card To User), Klip 회원에게 카드 발행(Mint Card To Klip Member), 모든 사용자에게 카드 전송(Send Card To User), Klip 회원에게 카드 전송(Send Card To Klip Member), 카드 정보 불러오기(Get Card Information By Bapp, Get Card Information), 카드 삭제(Delete Card)가 있습니다.
카드에 사용할 소유자 전용 리소스를 업로드합니다. upload 필드에 설정할 수 있는 파일 용량은 최대 10MiB입니다. 가로x세로 각각 23000px 이하 카드 이미지를 사용해야 Klip에 정상적으로 노출됩니다.
Headers
Name
Type
Description
Authorization*
string
JWT 형식 인증 토큰입니다.
Content-Type*
string
multipart/form-data
Request Body
Name
Type
Description
upload*
string
업로드할 파일명입니다. 파일 경로를 포함해야 합니다.
Request Example
Mint Card to User
Mint Card To User
POSThttps://api.klipwallet.com/v2/wallet/mint
Klip Partners에 사용자 정보를 보내고 카드를 발행합니다. 사용자 EOA로 발행됩니다.
Headers
Name
Type
Description
Authorization*
string
JWT 형식 인증 토큰입니다.
Content-Type*
string
application/json
Request Body
Name
Type
Description
pin*
string
서명에 사용할 핀 번호를 해시(SHA256)한 64자리 Hex String 값입니다.
to_address*
array
카드를 발행받을 EOA 주소들이 담긴 string 배열입니다.
contract_address*
string
카드를 발행하는 SCA 주소입니다.
name*
string
카드 이름입니다.
description*
string
카드에 관한 설명입니다.
image*
string
카드에 사용할 이미지 URL 주소입니다.
animation_url
string
카드에 사용할 동영상 URL 주소입니다. 지원하는 파일 확장자는 .mp4입니다. H.264 코덱이 아니거나 해상도가 3840x2160을 넘는 경우 재생되지 않을 수 있습니다.
background_color
string
카드 배경에 사용할 RGB 색상 코드입니다.
sendable
boolean
TRUE이면 발행한 카드를 Klip에서 타인에게 전송 가능합니다.
send_friend_only
boolean
TRUE이면 발행한 카드를 Klip에서 카카오톡 친구에게만 전송 가능합니다. 현재 Klip 내에서 일시적으로 친구 전송이 제공되지 않고 있으므로 FALSE로 설정합니다.
group_name
string
카드를 그룹핑할 때 사용하는 카드 그룹 이름입니다.
group_icon
string
카드 그룹 아이콘으로 사용할 이미지 URL 주소입니다.
hashtags
array
해시태그들이 담긴 string 배열입니다. 카드에 해시태그를 달면 특정 주제, 내용을 쉽게 찾을 수 있습니다.
layout
string
카드를 보여주는 방식입니다. 예를 들어, 정사각형 이미지는 general, 가로가 더 긴 이미지는 horizontal 세로가 긴 이미지는 vertical로 설정할 수 있습니다. 기본값은 general입니다.
external_link
string
Klip 외부로 연결되는 URL 주소입니다. (최대 길이:255)
custom_links
array
Klip 외부로 연결되는 URL 주소들이 담긴 object 배열 입니다. display_name에 노출할 속성명, value에 속성값을 쌍을 이뤄 지정합니다. Klip의 NFT 상세 화면에서 외부로 연결되는 링크가 제공됩니다. (배열의 최대 크기: 10개, 각 링크의 최대 길이: 255)
qr_code
string
QR Code가 그려진 이미지 URL입니다 (최대 길이:255)
bar_code
string
Bar Code가 그려진 이미지 URL입니다. (최대 길이:255)
attributes
array
발행할 카드 속성값들이 담긴 object 배열입니다.
secure
object
카드 소유자에게만 보여줄 정보를 담은 object입니다. bar_code, qr_code, images, animations, 및 attributes 필드를 선택적으로 설정할 수 있습니다.
status_url
string
카드 상태 정보를 담고 있는 외부 URL입니다. 해당 URL에서는 JSON 값을 반환해야하고, 필수적으로 bool type의 valid 필드와 선택적으로 array type의 attributes 필드를 설정할 수 있습니다.
Request Example
Request Details forsecure
이름
타입
설명
bar_code
string
bar code로 표시할 문자열 값입니다. 기본적으로 CODE 128 형식을 사용합니다. optional 필드입니다. (최대 길이:20, ' '(공백) 또는 '-' 문자 제외)
qr_code
string
qr code로 표시할 문자열 값입니다. optional 필드입니다. (최대 길이:255)
attributes
array
카드 속성값들이 담긴 object 배열입니다. optional 필드입니다.
images
array
secure 이미지 객체들의 배열입니다. 이미지 객체는 low_resolution과 (또는) high_resolution 값을 가지며 각각 저해상도 이미지, 고해상도 이미지 파일명을 기록합니다. secure 이미지 업로드 방법은 Upload Secure NFT Resource를 참조하세요. optional 필드입니다.
animations
array
secure 동영상 객체들의 배열입니다. 동영상 객체는 low_resolution과 (또는) high_resolution 값을 가지며 각각 저해상도 동영상, 고해상도 동영상 파일명을 기록합니다. secure 동영상 업로드 방법은 Upload Secure NFT Resource를 참조하세요. optional 필드입니다.
Klip Partners에 Klip 회원 정보를 보내고 카드를 발행합니다. to_person에 입력한 실명과 전화번호를 가진 Klip 회원 EOA로 발행됩니다.
Headers
Name
Type
Description
Authorization*
string
JWT 형식 인증 토큰입니다.
Content-Type*
string
application/json
Request Body
Name
Type
Description
pin*
string
서명에 사용할 핀 번호를 해시(SHA256)한 64자리 Hex String 값입니다.
to_person*
array
카드를 발행받을 실명과 전화번호 쌍이 담긴 2차원 배열입니다.
contract_address*
string
카드를 발행하는 SCA 주소입니다.
name*
string
카드 이름입니다.
description*
string
카드에 관한 설명입니다.
image*
string
카드에 사용할 이미지 URL 주소입니다.
animation_url
string
카드에 사용할 동영상 URL 주소입니다. 지원하는 파일 확장자는 .mp4입니다. H.264 코덱이 아니거나 해상도가 3840x2160을 넘는 경우 재생되지 않을 수 있습니다.
background_color
string
카드 배경에 사용할 RGB 색상 코드입니다.
sendable
boolean
TRUE이면 발행한 카드를 Klip에서 타인에게 전송 가능합니다.
send_friend_only
boolean
TRUE이면 발행한 카드를 Klip에서 카카오톡 친구에게만 전송 가능합니다. 현재 Klip 내에서 일시적으로 친구 전송이 제공되지 않고 있으므로 FALSE로 설정합니다.
group_name
string
카드를 그룹핑할 때 사용하는 카드 그룹 이름입니다.
group_icon
string
카드 그룹 아이콘으로 사용할 이미지 URL 주소입니다.
hashtags
array
해시태그들이 담긴 string 배열입니다. 카드에 해시태그를 달면 특정 주제, 내용을 쉽게 찾을 수 있습니다.
layout
string
카드를 보여주는 방식입니다. 예를 들어, 정사각형 이미지는 general, 가로가 더 긴 이미지는 horizontal 세로가 긴 이미지는 vertical로 설정할 수 있습니다. 기본값은 general입니다.
external_link
string
Klip 외부로 연결되는 URL 주소입니다. (최대 길이:255)
custom_links
array
Klip 외부로 연결되는 URL 주소들이 담긴 object 배열 입니다. display_name에 노출할 속성명, value에 속성값을 쌍을 이뤄 지정합니다. Klip의 NFT 상세 화면에서 외부로 연결되는 링크가 제공됩니다. (배열의 최대 크기: 10개, 각 링크의 최대 길이: 255)
qr_code
string
QR Code가 그려진 이미지 URL 주소입니다. (최대 길이:255)
bar_code
string
Bar Code가 그려진 이미지 URL 주소입니다. (최대 길이:255)
attributes
array
발행할 카드 속성값들이 담긴 object 배열입니다.
secure
object
카드 소유자에게만 보여줄 정보를 담은 object입니다. bar_code, qr_code, images, animations, 및 attributes 필드를 선택적으로 설정할 수 있습니다.
status_url
string
카드 상태 정보를 담고 있는 외부 URL입니다. 해당 URL에서는 JSON 값을 반환해야하고, 필수적으로 bool type의 valid 필드와 선택적으로 array type의 attributes 필드를 설정할 수 있습니다.
Request Example
Request Details forsecure
이름
타입
설명
bar_code
string
bar code로 표시할 문자열 값입니다. 기본적으로 CODE 128 형식을 사용합니다. optional 필드입니다. (최대 길이:20, ' '(공백) 또는 '-' 문자 제외)
qr_code
string
qr code로 표시할 문자열 값입니다. optional 필드입니다. (최대 길이:255)
attributes
array
카드 속성값들이 담긴 object 배열입니다. optional 필드입니다.
images
array
secure 이미지 객체들의 배열입니다. 이미지 객체는 low_resolution과 (또는) high_resolution 값을 가지며 각각 저해상도 이미지, 고해상도 이미지 파일명을 기록합니다. secure 이미지 업로드 방법은 Upload Secure NFT Resource를 참조하세요. optional 필드입니다.
animations
array
secure 동영상 객체들의 배열입니다. 동영상 객체는 low_resolution과 (또는) high_resolution 값을 가지며 각각 저해상도 동영상, 고해상도 동영상 파일명을 기록합니다. secure 동영상 업로드 방법은 Upload Secure NFT Resource를 참조하세요. optional 필드입니다.
카드 개수가 100개 이상이면 다음 100개 정보를 받는 커서값입니다. 일반적으로 카드 개수가 100개를 초과한다면 1번 호출 시 100개의 결과와 next_cursor 값을 받습니다. 나머지 카드를 조회하려면 next_cursor 값을 query 파라미터 cursor에 전달하여 API를 다시 호출해야합니다.
//secure 예시 ()
"secure": {
// 일반적으로 bar_code 또는 qr_code 둘 중 하나만 설정
"bar_code": "1234 ABCD 5678 EFGH 90IJ",
"qr_code": "https://your-domain.com?key=1234",
// 사전에 업로드한 secure 이미지의 UUID를 사용
// 배열 형식이지만 현재 클립에서 소유자 전용 이미지는 한 개만 추가 노출되므로 하나만 인자로 입력
"images": [
{"low_resolution" : "{uploaded-filename-1}.png"}
],
// 사전에 업로드한 secure 동영상의 UUID를 사용
// 배열 형식이지만 현재 클립에서 소유자 전용 동영상은 한 개만 추가 노출되므로 하나만 인자로 입력
// animations를 등록하는 경우, 반드시 images도 "썸네일" 역할로써 등록 필요
"animations": [
{"low_resolution" : "{uploaded-filename-2}.mp4"}
],
"attributes":[
{
"trait_type": "Sword",
"value": "Iron Short Sword"
},
{
"trait_type": "Magic Type",
"value": "Fire"
},
{
"trait_type": "Sword Level",
"value": "5"
},
{
"trait_type": "Magic Level",
"value": "2"
}
]
}
//secure 예시
"secure": {
// 일반적으로 bar_code 또는 qr_code 둘 중 하나만 설정
"bar_code": "1234 ABCD 5678 EFGH 90IJ",
"qr_code": "https://your-domain.com?key=1234",
// 사전에 업로드한 secure 이미지의 UUID를 사용
// 배열 형식이지만 현재 클립에서 소유자 전용 이미지는 한 개만 추가 노출되므로 하나만 인자로 입력
"images": [
{"low_resolution" : "{uploaded-filename-1}.png"}
],
// 사전에 업로드한 secure 동영상의 UUID를 사용
// 배열 형식이지만 현재 클립에서 소유자 전용 동영상은 한 개만 추가 노출되므로 하나만 인자로 입력
// animations를 등록하는 경우, 반드시 images도 "썸네일" 역할로써 등록 필요
"animations": [
{"low_resolution" : "{uploaded-filename-2}.mp4"}
],
"attributes":[
{
"trait_type": "Sword",
"value": "Iron Short Sword"
},
{
"trait_type": "Magic Type",
"value": "Fire"
},
{
"trait_type": "Sword Level",
"value": "5"
},
{
"trait_type": "Magic Level",
"value": "2"
}
]
}
//전송 성공 예시
{ to_address: "0xb1764B96da889..." , fail_count: 0, tx_hash: "0x7cf09602cebb..."}
//잘못된 핀 번호를 1회 입력 시
{fail_count: 1}
//잘못된 핀 번호를 2회 입력 시
{fail_count: 2}
//잘못된 핀 번호 입력 횟수 한도는 5회입니다. 잘못된 핀 번호를 5회 입력하고
//정확한 핀 번호를 6회째에 입력해도 다음 결과를 받음에 유의하십시오.
{fail_count: 6}
//fail_count의 max값은 현재 6입니다.
//잘못된 핀 번호를 7회 입력 시
{fail_count: 6}
"bad request": 잘못된 요청입니다. Request 파라미터를 다시 확인하십시오.
//전송 성공 예시
{ fail_count: 0, tx_hash: "0x2d26f602cfbb4c662931592bf2c4ee18d29f09683be5b9e8d589ff935fca0b97" }
//잘못된 핀 번호를 1회 입력 시
{fail_count: 1, tx_hash: ""}
//잘못된 핀 번호를 2회 입력 시
{fail_count: 2, tx_hash: ""}
//잘못된 핀 번호 입력 횟수 한도는 5회입니다. 잘못된 핀 번호를 5회 입력하고
//정확한 핀 번호를 6회째에 입력해도 다음 결과를 받음에 유의하십시오.
{fail_count: 6, tx_hash: ""}
//fail_count의 max값은 현재 6입니다.
//잘못된 핀 번호를 7회 입력 시
{fail_count: 6, tx_hash: ""}
"bad request": 잘못된 요청입니다. Request 파라미터를 다시 확인하십시오.