NOVO: Helius adquire a Light Protocol
como mintar um NFT na Solana
Blog/Desenvolvimento

Solana Dev 101 - Como mintar um NFT na Solana

Engenheiro de Experiência do DesenvolvedorOwen Venter no XOwen Venter no LinkedIn
4 min de leitura

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:

Código
npm install @solana/web3.js @metaplex-foundation/js

Etapa 2: importe as dependências

Em seguida, podemos criar um novo arquivo chamado mintNFTs.js e começar importando as dependências necessárias:

Código
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.‍

Código
solana-keygen new

‍Você pode importá-la para uma extensão de carteira do navegador, como Phantom ou Backpack.

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.

Código
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.

Código
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.

Código
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:

‍

Assine a Helius

Acompanhe as novidades mais recentes do desenvolvimento Solana e receba atualizações quando publicarmos

Imagem ampliada