
Solana Dev 101 — как выпустить NFT в Solana
Всем привет! В этой статье мы погрузимся в мир невзаимозаменяемых токенов (NFT) в Solana.
К концу статьи вы будете четко понимать весь процесс и сможете создавать собственные NFT в Solana с помощью JavaScript.
Если у вас возникнут вопросы, присоединяйтесь к Discord Helius или отметьте Helius в Twitter, чтобы получить помощь.
Установите необходимые инструменты:
Прежде чем начать, убедитесь, что на вашем компьютере установлены Node.js и npm. Скачать их можно здесь.
Шаг 1. Установите зависимости
Сначала установим необходимые зависимости.
Выполните следующие команды в терминале, чтобы установить JavaScript API для Solana и библиотеку Metaplex для JavaScript:
npm install @solana/web3.js @metaplex-foundation/jsШаг 2. Импортируйте зависимости
Теперь создадим файл mintNFTs.js и импортируем необходимые зависимости:
const { Keypair, Connection } = require('@solana/web3.js');
const { Metaplex,keypairIdentity, bundlrStorage,toMetaplexFile } = require('@metaplex-foundation/js');
const {fs} = require('fs');Шаг 3. Создайте кошелек, инициализируйте подключение и создайте экземпляр Metaplex
Нам нужен кошелек Solana для выпуска и хранения NFT. Для этого воспользуемся инструментами Solana CLI. Выполните следующую команду в терминале, чтобы создать новый кошелек. Он будет сохранен в виде JSON-файла с сид-фразой.
solana-keygen newЕго можно импортировать в браузерное расширение кошелька, например Phantom или Backpack.
Никому не сообщайте свой приватный ключ.
Теперь инициализируем подключение к кластеру Solana. Мы будем подключаться к кластеру mainnet через Helius. Это быстрее общедоступного RPC, для которого действуют строгие ограничения частоты запросов и который не поддерживает архивные данные. ( 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 SDK — набора инструментов для взаимодействия с протоколом Metaplex. Затем настраиваем для него подключение к кластеру Solana, кошелек пользователя и поставщика хранилища. .use(bundlrStorage()) настраивает использование Bundlr в качестве поставщика хранилища, где будут храниться метаданные и ресурсы NFT.
Шаг 4. Создайте и загрузите метаданные NFT
На этом шаге мы создадим и загрузим метаданные и изображение NFT с помощью функции createMetadata().
Одна из основных частей NFT — изображение. В этом примере мы используем логотип Helius. Добавьте нужное изображение в каталог, где вы создали файл mintNFT.js.
Сначала функция считывает файл изображения, указанный в imageName, с помощью fs, а затем преобразует его в подходящий для Metaplex формат с помощью toMetaplexFile(). Затем мы загружаем метаданные с помощью функции metaplex.nfts().uploadMetadata().
Метаданные содержат важную информацию о нашем NFT: название, описание, подготовленное изображение и набор атрибутов с дополнительными сведениями. В NFT можно включить гораздо больше данных. Подробнее о стандарте NFT от Metaplex читайте здесь.
После успешной загрузки метаданных функция вернет их 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
Теперь перейдем к выпуску NFT и создадим функцию createNFT(). Сначала вызовем функцию createMetadata() с аргументом "./heliusLogo.png" — путем к файлу изображения.
Затем выпустим NFT, вызвав metaplex.nfts().create(). Эта функция принимает объект с несколькими свойствами: URI метаданных, названием NFT, комиссией продавца (здесь она равна 5%) и массивом создателей. Объект каждого создателя содержит адрес и долю роялти в процентах, которую должен получать соответствующий кошелек.
После успешного создания NFT функция выведет адрес минта NFT в журнал. Этот адрес — уникальный идентификатор NFT в блокчейне. Вы можете скопировать его и найти NFT в обозревателе блоков, например Orb.
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. Надеемся, это руководство помогло вам начать работу с NFT в Solana. NFT — важная часть экосистемы Solana, поэтому умение разбираться в их структуре и создавать их будет очень полезно.
Полный код доступен здесь. Удачи в разработке!
Ссылки:
Похожие статьи
Подпишитесь на Helius
Следите за новостями разработки на Solana и получайте уведомления о наших публикациях


