개발없이 클레이 제너러티브 NFT 발행하기(1) — Klay-Gacha-Machine

이은강
7 min readFeb 27, 2022

2022년 10월 초, 클레이 가챠머신보다 쉬운 CRAFTER721이 공개되었다! 수수료도 무료이니 이쪽으로 사용하길 추천한다!

2022년 7월 14일, Klay-Gacha-Machine V1과 Klay-Gacha-Machine V2가 대대적으로 업데이트 되었다!

업데이트 내용은 본 미디움 계정의 최신 글을 참조할 것!

일단 시작하기 전에 분명히 알아둬야 할 것!

  1. 제너러티브 NFT의 디자인이 되는 각 파츠의 결합, 그러니까 Hashlips art engine을 이용해 100~10000개의 작품을 조합하는 기능은 아직 지원하지 않는다.
  2. 오픈베타버전인 Klay-Gacha-Machine은 현재 NFT의 ipfs 업로드 및 민팅버튼, 그러니까 NFT 발행 웹사이트에 올라갈 NFT 구매버튼까지 지원한다.
  3. 프로젝트의 사용은 완전히 무료이지만, 민팅시 NFT 구매자가 지불한 Klay 가격 중 ‘민트당 0.1Klay’가 수수료로 지불된다. 그러니까 NFT 개당 가격을 100클레이로 지정했다면, 수수료를 제외한 99.9Klay가 입금된다.

그럼 이제 본격적으로 Klay-Gacha-Machine의 사용법에 대해서 알아보자.

  • 준비물
  1. NFT의 대상 작품 1~10000개(갯수는 상관없음)
  2. NFT 작품 갯수만큼의 Metadata(Json파일)
  3. pinata ipfs의 api key와 secret api key
  4. Kaikas 지갑 주소 및 프라이빗 키

준비물부터 어떻게 준비할지 막막할 분들을 위해 우선 준비물을 갖추는 방법부터 알아보도록 하자.(친절)

  • NFT의 대상 작품을 준비하기

NFT 아트 제너레이터 중 가장 유명한 Hashlips 프로젝트이다. 주소에 접속하면 프로젝트 사용방법이 친절하게 정리되어있다. 코딩지식이 아예 없는 분들을 위해 유튜브 링크도 첨부한다.

현재 Hashlips 프로젝트 사용법을 가장 잘 설명한 영상이다. 그 뒤에는 오픈씨에 업로드까지 하는, 그러니까 이를테면 이 Klay-Gacha-Machine이 없어도 발행까지 가는 과정까지 설명되어 있다.

그럼에도 Klay-Gacha-Machine을 쓰는 이유에 대해서는 미리 언급해놓았다.

  • NFT 작품 갯수만큼의 Metadata 만들기

위 Hashlips 프로젝트를 사용하면 당연히 Metadata도 함께 만들어진다.

Metadata란 무엇인가?에 대한 설명도 미리 언급해놓았으니 전글 참조!

Metadata의 standard, 즉 표준은 다음과 같다.

{
“name”:”NFT의 이름",
“symbol”:”NFT의 토큰심볼”,
“description”:”NFT의 설명, 그러니까 한줄짜리 홍보용 문구”,
“image”:”https://ipfs.io/ipfs/{해시값} 이미지의 주소",
“attributes”:[{“trait_type”:”속성명 ex)hair color”,”value”:”속성값 ex) red”}]
}

가장 필수적인 것들만 적어놓았다. 이 외에도 Json 데이터가 허용하는 값이면 뭐든지 가능하다.

각 이름은 “NFT이름 #001”처럼 번호를 매기는 것이 일반적이고, 심볼은 넣지 않아도 되지만 구분을 위해 넣는 것이 좋다. 속성값(attribute) 또한 넣지 않아도 무방하지만, 제너러티브 NFT를 만드는 이유는 판매하는 것이며, 상품의 특성이 없는 한 구매까지 이어지지도 않으니 보통은 attribute를 넣는다. 속성값은 몇개를 넣어도 상관은 없지만, 보통 3~6개정도 넣는다. 속성값 자체에 Rarity를 common, rare, unique와 같은 방식으로 넣기도 한다.

하지만 가장 큰 문제는 “image”에 들어갈 주소값이다.

Metadata는 아트웍을 생성할 때 자동으로 생성된다. 왜냐하면 각 아트웍마다 속성값이 다른데, 1천개가 넘는 아트웍을 먼저 생성하고 그에 맞춰서 직접 키보드로 Metadata를 적는 멍청한 짓을 하고싶지 않기 때문이다. 헌데, 문제는 아트웍을 생성하면서 ‘IPFS에 바로 업로드를 하고 그 업로드한 주소, 즉 URL을 바로 가져오지 않기 때문에’ 저 이미지 주소는 아트웍 생성 당시에는 보통 존재하지 않는다.

따라서 먼저 NFT 아트웍과 Metadata파일을 생성하고, 아트웍 이미지들을 ipfs같은 웹 저장소에 업로드 한 뒤, 각 업로드된 이미지들의 URL을 따와서 Metadata 파일에다가 쑤셔박는 작업이 필요하다.

이 작업은 보통 다른 체인의 NFT 발행에서도 수행되니, 찾아보면 pinata ipfs를 이용한 방법들이 많다.(나도 따로 올리도록 하겠다.) 다만, 아트웍과 이미지 URL이 빠진 Metadata가 준비되어 있다면, 자동으로 pinata ipfs에 업로드시켜주는 기능은 이미 Klay-Gacha-Machine에 들어가 있으니 그저 아래에 나오는 pinata의 api key만 가져오면 된다.

  • pinata ipfs의 api key와 secret api key 만들기

일단 pinata ipfs의 웹사이트에 접속한다.

가입을 하고 접속하면 다음과 같은 화면이 뜨는데,

우측 상단에 있는 API Keys 항목에 들어간다.

그리고 New Key 버튼을 눌러서 api키를 생성하는데,

Admin permission을 on으로 해두고, Key Name을 설정한 다음, Create Key를 누르면,

요렇게 API Key와 API Secret, 그리고 JWT를 준다. 절대로 창을 닫지 말고, Copy All 버튼을 눌러서 전부 카피를 뜬 다음, 메모장 등에 보관해야 한다.

(그냥 닫으면 다시 가져올 방법이 없어서 다시 만들어야 한다.)

이렇게 pinata의 api key와 api secret을 준비했다.

  • Kaikas 지갑 주소 및 프라이빗 키

클레이튼 NFT를 만든다면 당연히 Kaikas 지갑은 가지고 있을테니 지갑 설치 링크만 올려둔다.

다만, 혹시라도

아니 왜 프라이빗키까지 필요하지? 혹시 이 시키 이거 해킹…

라는 의혹이 있으실 현명한 분이 있을까봐 설명하자면,

Klaytn의 스마트 컨트랙트와 통신하기 위해서 Caver.js라는 web3 라이브러리를 사용해야 하는데, Caver.js가 스마트컨트랙트에 접근해 토큰을 발행한다거나하는 기능을 이용할 때에는 지갑을 Caver에 등록해야 하고, 이 등록과정을 위해서 지갑주소와 프라이빗 키 모두 필요하다. 애초에 깃 클로닝해서 프로젝트 가져갈테니 나에게 보여질 일따위는 없습니다…

자, 이렇게 모든 준비가 끝나면, 본격적으로 Klay-Gacha-Machine을 사용할 준비가 된 것이다.

--

--