
Solana Dev 101 - Como mintar um NFT na Solana
GM! Neste artigo, vamos explorar o mundo dos tokens não fungíveis (NFTs) na Solana.
Ao final deste artigo, você terá uma compreensão clara do processo e poderá criar seus próprios NFTs na Solana usando JavaScript.
Se tiver alguma dúvida, entre no Discord da Helius ou marque a Helius no Twitter para obter ajuda.
Instale os pré-requisitos:
Antes de começar, verifique se Node.js e npm estão instalados em sua máquina. Você pode baixá-los aqui.
Etapa 1: instale as dependências
Primeiro, precisamos instalar as dependências necessárias.
Execute os seguintes comandos no terminal para instalar a API JavaScript da Solana e a biblioteca JavaScript da Metaplex:
npm install @solana/web3.js @metaplex-foundation/jsEtapa 2: importe as dependências
Em seguida, podemos criar um novo arquivo chamado mintNFTs.js e começar importando as dependências necessárias:
const { Keypair, Connection } = require('@solana/web3.js');
const { Metaplex,keypairIdentity, bundlrStorage,toMetaplexFile } = require('@metaplex-foundation/js');
const {fs} = require('fs');Etapa 3: crie uma carteira, inicialize uma conexão e crie uma instância da Metaplex
Precisamos criar uma carteira Solana que será usada para mintar e armazenar o NFT. Para isso, usaremos as ferramentas da Solana CLI. Execute o comando a seguir no terminal para obter uma nova carteira. Essa carteira será salva como um arquivo JSON contendo a frase-semente.
solana-keygen newVocê pode importá-la para uma extensão de carteira do navegador, como Phantom ou Backpack.
Não compartilhe sua chave privada com ninguém.
Agora, inicializamos uma conexão com o cluster da Solana. Usaremos a Helius para nos conectar a um cluster da mainnet, pois isso será mais rápido do que o RPC público, que tem limites de requisição bastante restritivos e não oferece recursos de arquivamento. ( https://api.mainnet-beta.solana.com ). Se você também quiser usar um serviço de RPC mais rápido e avançado em vez do RPC padrão, crie uma conta gratuita da Helius aqui.
Em seguida, criaremos um par de chaves da carteira usando a frase-semente da carteira que acabamos de criar.
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;
}No código acima, criamos uma instância do Metaplex SDK, um conjunto de ferramentas para interagir com o protocolo Metaplex. Depois, configuramos a instância com uma conexão a um cluster da Solana, a carteira do usuário e um provedor de armazenamento. .use(bundlrStorage()) configura a instância para usar o Bundlr como provedor de armazenamento, onde os metadados e ativos dos NFTs serão armazenados.
Etapa 4: crie e faça upload dos metadados do NFT
Nesta etapa, veremos como criar e fazer upload dos metadados e da imagem do NFT usando a função createMetadata().
Uma das partes principais de um NFT é a imagem. Neste exemplo, usaremos esta imagem do logo da Helius! Adicione a imagem que você deseja usar ao diretório em que criou o arquivo mintNFT.js.
Essa função começa lendo o arquivo de imagem especificado por imageName usando fs e, depois, o converte em um formato adequado para a Metaplex com toMetaplexFile(). Em seguida, fazemos upload dos metadados usando a função metaplex.nfts().uploadMetadata().
Os metadados contêm detalhes importantes sobre nosso NFT, incluindo seu nome, uma descrição, a imagem que preparamos e um conjunto de atributos que fornecem informações adicionais sobre o NFT. Você pode incluir muitos outros dados em seu NFT. Leia mais sobre o padrão de NFT da Metaplex aqui.
Após o upload bem-sucedido dos metadados, a função retornará o URI dos metadados, que aponta para a localização online dos dados.
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;
}Etapa 5: mintando o NFT
Agora, vamos mintar o NFT criando uma função chamada createNFT(). Primeiro, chamamos a função createMetadata() com "./heliusLogo.png" como argumento (o caminho do arquivo de imagem).
Em seguida, mintamos o NFT chamando metaplex.nfts().create(). Essa função recebe um objeto com várias propriedades, como o URI dos metadados, o nome do NFT, uma taxa do vendedor (definida aqui como 5%) e um array de criadores. Cada objeto de criador inclui o endereço e a porcentagem dos royalties que a respectiva carteira deve receber.
Após criar o NFT com sucesso, a função registrará o endereço de mint do NFT. Esse endereço é um identificador exclusivo do NFT na blockchain. Você pode copiá-lo e consultar o NFT em um explorador de blocos como o 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();A execução desse código com node mintNFT.js criou o NFT que pode ser visto aqui.
Conclusão
Parabéns! Você acabou de criar um NFT. Espero que este tutorial tenha ajudado você a começar a trabalhar com NFTs na Solana. Os NFTs são uma parte fundamental do ecossistema da Solana. Portanto, entender como eles são estruturados e como criá-los é uma habilidade muito útil.
Você encontra o código completo aqui. Bom código!
Referências:
Artigos relacionados
Assine a Helius
Acompanhe as novidades mais recentes do desenvolvimento Solana e receba atualizações quando publicarmos


