
Solana Dev 101 - Solana에서 NFT를 민팅하는 방법
GM! 이번 글에서는 Solana의 대체 불가능 토큰(NFT) 세계를 살펴보겠습니다.
이 글을 끝까지 읽으면 전체 과정을 명확히 이해하고 JavaScript를 사용해 Solana에서 직접 NFT를 만들 수 있습니다.
궁금한 점이 있다면 Helius Discord에 참여하거나 Twitter에서 Helius를 태그해 도움을 요청하세요.
필수 구성 요소 설치:
시작하기 전에 컴퓨터에 Node.js와 npm이 설치되어 있는지 확인하세요. 여기에서 다운로드할 수 있습니다.
1단계: 의존성 설치
먼저 필요한 의존성을 설치해야 합니다.
터미널에서 다음 명령어를 실행해 Solana JavaScript API와 Metaplex JavaScript 라이브러리를 설치하세요.
npm install @solana/web3.js @metaplex-foundation/js2단계: 의존성 가져오기
다음으로 mintNFTs.js라는 새 파일을 만들고 필요한 의존성을 가져옵니다.
const { Keypair, Connection } = require('@solana/web3.js');
const { Metaplex,keypairIdentity, bundlrStorage,toMetaplexFile } = require('@metaplex-foundation/js');
const {fs} = require('fs');3단계: 지갑 생성, 연결 초기화 및 Metaplex 인스턴스 생성
NFT를 민팅하고 보관할 Solana 지갑을 만들어야 합니다. 이를 위해 Solana CLI 도구를 사용합니다. 터미널에서 다음 명령어를 실행해 새 지갑을 생성하세요. 이 지갑은 시드 문구가 포함된 JSON 파일로 저장됩니다.
solana-keygen new이 지갑을 Phantom이나 Backpack과 같은 브라우저 지갑 확장 프로그램으로 가져올 수 있습니다.
개인 키를 절대로 다른 사람과 공유하지 마세요.
이제 Solana 클러스터 연결을 초기화합니다. 사용량 제한이 엄격하고 아카이브 기능이 없는 공개 RPC보다 빠른 Helius를 사용해 메인넷 클러스터에 연결하겠습니다. ( https://api.mainnet-beta.solana.com ). 기본 RPC 대신 더 빠른 프리미엄 RPC 서비스를 사용하려면 여기에서 무료 Helius 계정을 만들 수 있습니다.
그런 다음 방금 생성한 지갑의 시드 문구로 지갑 키 쌍을 만듭니다.
async function createMetadata(imageName) {
// Create an image buffer
const metadataURI = await metaplex.nfts().uploadMetadata({
name: "Helius NFT",
description: "Helius NFT created in the SolanaDev 101 course",
// Image: await uploadIMG(imageName),
image: await toMetaplexFile(fs.readFileSync(imageName), "heliusLogo"),
attributes: [
{ trait_type: "Test", value: "Yes" },
{ trait_type: "Logo", value: "Helius" },
],
});
return metadataURI;
}위 코드에서는 Metaplex 프로토콜과 상호작용하기 위한 도구 모음인 Metaplex SDK의 인스턴스를 생성합니다. 그런 다음 Solana 클러스터 연결, 사용자 지갑, 스토리지 공급자를 사용해 인스턴스를 구성합니다. .use(bundlrStorage())는 NFT의 메타데이터와 자산이 저장되는 스토리지 공급자로 Bundlr를 사용하도록 인스턴스를 구성합니다.
4단계: NFT 메타데이터 생성 및 업로드
이 단계에서는 createMetadata() 함수를 통해 NFT 메타데이터와 이미지를 생성하고 업로드합니다.
이미지는 NFT의 핵심 요소 중 하나입니다. 이 예제에서는 Helius 로고 이미지를 사용하겠습니다. 사용할 이미지를 mintNFT.js 파일이 있는 디렉터리에 추가하세요.
이 함수는 먼저 fs를 사용해 imageName로 지정된 이미지 파일을 읽은 후, toMetaplexFile()를 사용해 Metaplex에 적합한 형식으로 변환합니다. 그런 다음 metaplex.nfts().uploadMetadata() 함수를 사용해 메타데이터를 업로드합니다.
메타데이터에는 이름, 설명, 준비한 이미지, NFT에 대한 추가 정보를 제공하는 속성 세트 등 NFT의 중요한 정보가 포함됩니다. NFT에는 더 많은 데이터를 포함할 수 있습니다. Metaplex NFT 표준에 대한 자세한 내용은 여기에서 확인하세요.
메타데이터가 성공적으로 업로드되면 함수는 데이터의 온라인 위치를 가리키는 메타데이터 URI를 반환합니다.
async function createMetadata(imageName) {
// Create an image buffer
const metadataURI = await metaplex.nfts().uploadMetadata({
name: "Helius NFT",
description: "Helius NFT created in the SolanaDev 101 course",
// Image: await uploadIMG(imageName),
image: await toMetaplexFile(fs.readFileSync(imageName), "heliusLogo"),
attributes: [
{ trait_type: "Test", value: "Yes" },
{ trait_type: "Logo", value: "Helius" },
],
});
return metadataURI;
}5단계: NFT 민팅
이제 createNFT()라는 함수를 만들어 NFT를 민팅합니다. 먼저 이미지 파일 경로인 "./heliusLogo.png"를 인수로 전달해 createMetadata() 함수를 호출합니다.
다음으로 metaplex.nfts().create()를 호출해 NFT를 민팅합니다. 이 함수는 메타데이터 URI, NFT 이름, 판매자 수수료(여기서는 5%로 설정), 크리에이터 배열 등의 여러 속성이 포함된 객체를 받습니다. 각 크리에이터 객체에는 주소와 해당 지갑이 받을 로열티 금액의 지분 비율이 포함됩니다.
NFT가 성공적으로 생성되면 함수가 NFT의 민팅 주소를 로그에 출력합니다. 이 민팅 주소는 블록체인에서 NFT를 식별하는 고유 식별자입니다. 이 주소를 복사해 Orb와 같은 블록 탐색기에서 NFT를 조회할 수 있습니다.
async function createNFT() {
// Create and upload the metadata
const metadata = await createMetadata("./heliusLogo.png");
// Create the NFT
const nft = await metaplex.nfts().create({
uri: metadata.uri,
name: "Helius NFT",
seller_fee_basis_points: 500, // 5%
creators: [{ address: wallet.publicKey, verified: true, share: 100 }],
});
// Log the NFT mint address
console.log("NFT:", nft.mintAddress.toBase58());
}
createNFT();node mintNFT.js로 이 코드를 실행해 여기에서 확인할 수 있는 NFT를 생성했습니다.
마무리
축하합니다! 방금 NFT를 만들었습니다. 이 튜토리얼이 Solana에서 NFT를 시작하는 데 도움이 되었기를 바랍니다. NFT는 Solana 생태계의 핵심 요소이므로 그 구조와 생성 방법을 이해하면 매우 유용합니다.
전체 코드는 여기에서 확인할 수 있습니다. 즐겁게 코딩하세요!
참고 자료:
관련 아티클
Helius 구독하기
최신 Solana 개발 소식을 확인하고 새 게시물 알림을 받아보세요


