curl
명령어를 실행하여 수행할 수 있습니다.curl
명령어를 부분으로 나누어 하나씩 살펴보겠습니다. 컨트랙트 배포 API는 POST /v1/contract
로 실행할 수 있습니다. KIP-17 API가 https://kip17-api.klaytnapi.com
에서 서비스 되고 있으니 curl
요청의 URL을 https://kip17-api.klaytnapi.com/v1/contract
로, 요청 유형은 POST (—-request POST
)로 설정합니다.alias
): 컨트랙트의 별명입니다. 이후 API들에서 컨트랙트 주소대신 사용가능합니다. 허용되는 문자는 알파벳 소문자, 숫자, 하이픈이며 별명의 첫 문자는 알파벳 소문자로 제한됩니다.name
): 컨트랙트의 이름입니다. KIP-17 표준에서 요구하는 name
으로 사용됩니다. 허용되는 문자는 알파벳, 숫자, 하이픈입니다.symbol
): 컨트랙트의 심볼입니다. KIP-17 표준에서 요구하는 symbol
로 사용됩니다. 일반적으로 알파벳 대문자 3~4개로 구성되나 이를 제약하지는 않습니다.x-chain-id
헤더값을 요구합니다. 허용되는 값은 1001 (Baobab), 8217 (Cypress) 입니다.access-key-id
와 secret-access-key
를 제출해야합니다. 인증 정보의 생성 및 획득은 다음 링크를 참조해주세요.curl
명령어를 실행하면 다음과 같은 결과를 받게됩니다:GET /v1/contract
)를 사용하여 배포한 컨트랙트들을 조회할 수 있습니다. 다음 curl
명령어를 실행하여 컨트랙트 목록을 조회합니다.POST /v1/contract/{alias-or-address}/token
입니다. 여기서 {alias-or-address}
는 토큰을 발행하려는 컨트랙트의 별명(alias) 또는 주소(address)로 토큰을 배포할 때 제출하신 alias나 토큰 배포 후 컨트랙트 목록 조회 API에서 확인하신 address를 사용하시면 됩니다.POST /v1/contract/{alias-or-address}/token
)에 맞추어 입력합니다.to
): 토큰을 받는 사람의 Klaytn 계정 주소입니다. 토큰 발행 API는 지정된 주소로 새로운 토큰을 발행합니다.id
): 토큰의 고유번호입니다. 16진수로 표현되며 이미 발행되어있는 토큰의 고유번호는 사용할 수 없습니다. 단, 소각된 토큰의 고유번호는 재사용할 수 있습니다.uri
): 토큰 정보를 담은 JSON 파일의 위치를 URI로 표현한 값입니다. 해당 토큰의 정보, 속성 등을 기록하여 사전에 URI로 표현될 수 있는 위치에 배포한 뒤 토큰 발행 시 URI를 포함합니다. URI링크가 존재하는 링크인지는 확인하지 않으니, 주의하여 입력 부탁드립니다.curl
을 수행하면 다음과 같은 응답을 받을 수 있습니다.GET /v1/contract/{alias-or-address}/token
을 사용하여 새로 발행한 토큰이 컨트랙트에 추가되었는지 확인합니다. 다음 curl
명령어를 사용하여 my-first-kip17
컨트랙트의 토큰 목록을 조회할 수 있습니다.status
를 눈여겨 보셨다면 "Success"나 "Completed"가 아닌 "Submitted"인 것을 확인할 수 있습니다. Klaytn을 비롯한 모든 블록체인은 요청에 대한 응답이 즉시 돌아오지 않는 비동기 형태로 동작하기 때문에 요청이 성공했는지 바로 확인할 수 없습니다. 특히 토큰 발행과 같이 요청값에 따라 요청이 실패할 수 있는 경우(e.g., 이미 존재하는 토큰 고유번호를 사용)가 존재하기 때문에 토큰 목록 조회 실행과 같은 명시적인 확인이 필요합니다.POST /v1/contract/{alias-or-address}/token/{id}
입니다. {alias-or-address}
, {id}
는 전송하려는 컨트랙트, 토큰 정보를 사용합니다.0xOWNER
라고 가정합니다.x-krn
헤더에 직접 입력해야합니다.0xOWNER
라고 표기했으나 실제 주소는 Klaytn 계정 주소로 올바르게 표현되어야 합니다.curl
명령어는 0xOWNER
가 소유한 my-first-kip17
컨트랙트의 0x321
토큰을 0xRECIPIENT
에게 전송합니다.sender
): 토큰 전송 API를 실행하는 사람의 주소입니다.owner
): 전송하려는 토큰을 소유한 사람의 주소입니다. Sender가 owner와 다를 경우 sender는 사전에 토큰 전송 승인을 받은 받은 주소여야 합니다. 토큰 전송 승인에 대한 자세한 API는 토큰 전송 승인에서 확인하실 수 있습니다.to
): 토큰을 받는 사람의 주소입니다. 블록체인 특성상 소유권이 넘어가면 되돌릴 수 없으니 주의하시기 바랍니다.GET /v1/contract/{alias-or-address}/token
을 사용하여 전송한 토큰의 정보가 올바르게 변경되었는지 확인할 수 있습니다.owner
와 previousOwner
를 확인하시기 바랍니다.