Metaplex 캔디머신v2을 사용하여 솔라나Solana에 NFT 발행하기 (Solana, NFT, Metaplex, Candy Machine v2)

in SCT.암호화폐.Crypto2 years ago (edited)

개발 환경

다음 도구의 최신 버전이 필요합니다.


Metaplex CLI 설치하기

Solana CLI는 이미 설치되어 있다고 가정합니다. Solana CLI 설치 방법은 여기를 참고하세요.

이번에는 Metaplex CLI를 설치합니다. Metaplex를 사용하면 Solana에 NFT를 발행할 수 있는 캔디 머신을 만들 수 있습니다.

다음 명령을 통해 Metaplex CLI 도구를 ~/metaplex 경로에 다운로드 합니다.

git clone https://github.com/metaplex-foundation/metaplex.git ~/metaplex


그다음 종속성을 설치합니다.

yarn install --cwd ~/metaplex/js/


Candy Machine CLI 명령을 실행하여 정상적으로 작동하는지 확인할 수 있습니다.

ts-node ~/metaplex/js/packages/cli/src/candy-machine-v2-cli.ts --version

현재(2022-05-04) 버전은 0.0.2 입니다.


솔라나 지갑

devnet 솔라나 지갑 설정하기

NFT를 솔라나 devnet에 업로드 하기 위해서는 솔라나 지갑이 필요합니다.
다음 명령을 통해 솔라나 지갑을 생성합니다.

solana-keygen new --outfile ~/.config/solana/devnet.json  


그리고 다음 명령을 사용하여 이 솔라나 지갑을 기본 지갑으로 셋팅합니다.

solana config set --keypair ~/.config/solana/devnet.json  

문제가 없다면 다음과 같이 출력됩니다.

Config File: /Users/anpigon/.config/solana/cli/config.yml
RPC URL: https://api.mainnet-beta.solana.com
WebSocket URL: wss://api.mainnet-beta.solana.com/ (computed)
Keypair Path: /Users/anpigon/.config/solana/devnet.json
Commitment: confirmed


솔라나 지갑 구성을 다시 확인 할 수 있습니다.

solana config get


그 다음 devnet에서 솔라나 잔액을 확인합니다.

solana balance --url devnet

아마 잔액은 0 SOL일 것입니다. SOL이 없으면 솔라나에 아무 것도 배포 할 수 없습니다.

devnet wallet에 에어드롭 받기

devnet은 faucet을 통해 솔라나를 에어드롭 받을 수 있습니다.
다음 명령을 사용하여 2 SOL을 에어드롭 받습니다.

solana airdrop 2 --url devnet


그다음 잔액을 조회하면 2 SOL이 조회됩니다.

solana balance --url devnet

현재 최대 에어드랍 요청 한도는 2 SOL 이며, 일일 총 한도는 24 SOL 입니다.


Metaplex 캔디 머신 config 설정하기

config.json 파일을 생성합니다.
config.json 설정 파일은 https://docs.metaplex.com/candy-machine-v2/configuration#minimal-configuration 를 참고합니다.

{
  "price": 1.0,
  "number": 10,
  "gatekeeper": null,
  "solTreasuryAccount": "<YOUR WALLET ADDRESS>",
  "splTokenAccount": null,
  "splToken": null,
  "goLiveDate": "1 May 2022 00:00:00 GMT",
  "endSettings": null,
  "whitelistMintSettings": null,
  "hiddenSettings": null,
  "storage": "arweave-sol",
  "ipfsInfuraProjectId": null,
  "ipfsInfuraSecret": null,
  "nftStorageKey": null,
  "awsS3Bucket": null,
  "noRetainAuthority": false,
  "noMutable": false
}
  • price: NFT 가격을 입력합니다.
  • number: 발행할 NFT 개수를 입력합니다.
  • solTreasuryAccount: 본인의 지갑 주소를 입력합니다. NFT 판매 대금을 받을 지갑 주소입니다.
  • goLiveDate: NFT 발행 시각을 입력합니다.
  • storage: NFT가 저장될 위치을 입력합니다. 여기서는 arweave는 NFT 이미지를 저장할 수 있는 서비스입니다.


발행할 NFT Assets 준비하기

여기에서 샘플 이미지와 json 파일를 다운로드 할 수 있습니다.
Asset은 1:1 맵핑으로 이루어진 .png 파일과 .json 파일 모음으로 구성됩니다.
이미지는 png 파일인 경우에만 캔디머신이 동작합니다.

json 파일은 metaplex를 실행하는데 필요한 메타데이터입니다. metaplex는 이 메타데이터를 사용하여 블록체인에 asset를 저장합니다. 이름, 심볼, 이미지와 같이 몇가지 정보만 제공하면 나머지는 metaplex가 알아서 처리합니다.

0.json 파일 구조를 살펴보면:

{
    "name": "Number #0001",
    "symbol": "NB",
    "description": "Collection of 10 numbers on the blockchain. This is the number 1/10.",
    "seller_fee_basis_points": 500,
    "image": "0.png",
    "attributes": [
        {"trait_type": "Layer-1", "value": "0"},
        {"trait_type": "Layer-2", "value": "0"}, 
        {"trait_type": "Layer-3", "value": "0"},
        {"trait_type": "Layer-4", "value": "1"}
    ],
    "properties": {
        "creators": [{"address": "6j4nNrozTJkk1zatiXHezSLZArnRUq3WkGKHACThXGpZ", "share": 100}],
        "files": [{"uri": "0.png", "type": "image/png"}]
    },
    "collection": {"name": "numbers", "family": "numbers"}
}
  • name에는 이름을 지정하여 고유한 NFT 를 만들 수 있습니다.
  • creators는 여러명이 될 수 있습니다. 지금은 creator가 1명이므로 share를 100으로 설정하였습니다. address에는 본인의 지갑 주소를 입력합니다.

다음 명령을 사용하여 assets 파일에 문제가 없는지 확인 할 수 있습니다.

ts-node ~/metaplex/js/packages/cli/src/candy-machine-v2-cli.ts verify_assets ./assets


문제가 없고 검증에 성공했다면 다음과 같이 출력됩니다.

started at: 1651673067023
Verifying token metadata for 10 (img+json) pairs
Checking manifest file: /Users/anpigon/Desktop/assets/0.json
Checking manifest file: /Users/anpigon/Desktop/assets/1.json
Checking manifest file: /Users/anpigon/Desktop/assets/2.json
Checking manifest file: /Users/anpigon/Desktop/assets/3.json
Checking manifest file: /Users/anpigon/Desktop/assets/4.json
Checking manifest file: /Users/anpigon/Desktop/assets/5.json
Checking manifest file: /Users/anpigon/Desktop/assets/6.json
Checking manifest file: /Users/anpigon/Desktop/assets/7.json
Checking manifest file: /Users/anpigon/Desktop/assets/8.json
Checking manifest file: /Users/anpigon/Desktop/assets/9.json
ended at: Wed May 04 2022 23:04:27 GMT+0900 (Korean Standard Time). time taken: 00:00:00


캔디 머신 만들기

컬렉션이 준비되면 다음 단계는 Asset을 업로드하고 캔디 머신을 만드는 것입니다.
계속 하기 전에 다음을 한번 더 확인합니다.

  • .png이미지와 .json메타데이터가 동일한 assets디렉토리에 있습니다.
  • 지갑에 잔액이 있습니다. solana balance 명령으로 잔액을 확인합니다.
  • Candy Machine config.json 파일을 생성했습니다.


이제 다음 명령을 사용하여 assets를 업로드 합니다.

ts-node ~/metaplex/js/packages/cli/src/candy-machine-v2-cli.ts upload \
-e devnet \
-k ~/.config/solana/id.json \
-cp config.json \
./assets


업로드에 성공하면 다음과 같이 출력됩니다.

터미널에서 initialized config for a candy machine with publickey에 출력된 address를 복사합니다. 이 주소가 NFT contract의 address가 입니다. 복사한 주소를 사용하여 explorer.solana.com 에서 조회합니다.
솔라나 devnet 에 업로드 된 것을 확인할 수 있습니다.

Candy Machine CLI를 사용하여 성공적으로 업로드 되었는지 확인할 수도 있습니다.

ts-node ~/metaplex/js/packages/cli/src/candy-machine-v2-cli.ts verify_upload \
-e devnet \
-k ~/.config/solana/devnet.json \

위 명령을 실행하고 나면 .cache/devnet-temp.json 파일이 자동 생성됩니다.


이 파일에는 우리가 방금 업로드한 NFT 정보를 포함하고 있습니다.


토큰 발행(Mint)하기

이제 캔디 머신으로 NFT토큰을 발행할 준비가 되었습니다. 캔디 머신을 생성한 지갑은 NFT토큰을 발행할 수 있습니다.

다음 명령을 사용하여 하나의 NFT토큰을 발행할 수 있습니다.

ts-node ~/metaplex/js/packages/cli/src/candy-machine-v2-cli.ts mint_one_token \
-e devnet \
-k ~/.config/solana/devnet.json


발행에 성공하면 다음과 같이 출력됩니다.


다음 명령을 사용하여 발행이 성공했는지 확인할 수 있습니다 .

spl-token accounts --url devnet


발행이 성공하면 지갑에 NFT토큰이 표시됩니다.


mint_multiple_tokens명령을 사용하면 여러개의 토큰을 한번에 발행할 수도 있습니다.

ts-node ~/metaplex/js/packages/cli/src/candy-machine-v2-cli.ts mint_multiple_tokens \
-e devnet \
-k ~/.config/solana/devnet.json \
--number 2


다음 시간에 React 웹 앱을 구촉하고, Phantom 지갑을 사용하여 NFT토큰을 발행하는 방법을 알아볼께요.

참고

Sort:  

@anpigon transfered 1.0 KRWP to @krwp.burn. voting percent : 2.97%, voting power : 17.31%, steem power : 1964452.97, STU KRW : 1200.
@anpigon staking status : 68.5 KRWP
@anpigon limit for KRWP voting service : 0.068 KRWP (rate : 0.001)
What you sent : 1.0 KRWP
Refund balance : 0.931 KRWP [63877451 - 04f04a73057a35f819effeda9c36acdc5282fe74]

[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.

[by @anpigon] Metaplex 캔디머신v2을 사용하여 솔라나Solana에 NFT 발행하기 (Solana, NFT, Metaplex, Candy Machine v2)
https://www.steemit.com/@kr-dev.cu0/20220504t144602352z

@kr-dev.cu0님이 당신을 멘션하였습니다.
멘션을 받고 싶거나 받지 않으시려면 댓글을 남겨주세요. 빠른 시일내에 반영하도록 하겠습니다.

Upvoted! Thank you for supporting witness @jswit.
Please check my new project, STEEM.NFT. Thank you!
default.jpg

워우.. 대박..!!!
나중에 따라 해봐야겠다~ ㅎㅎㅎ
화이팅!! ㅎ

솔라나 NFT 가즈아~

그녀의 향취가 물씬 난다.
https://www.steemit.com/@vv2/4ktdp5

@vv2님이 당신을 멘션하였습니다.
멘션을 받고 싶거나 받지 않으시려면 댓글을 남겨주세요. 빠른 시일내에 반영하도록 하겠습니다.

Coin Marketplace

STEEM 0.34
TRX 0.11
JST 0.034
BTC 66361.53
ETH 3253.14
USDT 1.00
SBD 4.43