Criando tokens na rede Solana

Manual sobre a criação de tokens na rede Solana Palavras-chave: Tokens. Solana.

Introdução

Este procedimento foi testado no Debian GNU/Linux 12 e não envolve a listagem do token em corretoras. Algum entendimento no uso do Linux é recomendado.

Antes de começar

Atualização do sistema

Antes de mais nada, vamos atualizar o sistema, para garantir que tudo corra bem.

sudo apt update && sudo apt upgrade -y

Instalação das dependências

Agora vamos instalar as dependências necessárias.

sudo apt install -y libudev-dev libssl-dev pkg-config build-essential llvmi 
libclang-dev protobuf-compiler

Instalação da linguagem de programação da Solana (RUST)

Vamos instalar a linguagem de programação usada pela Solana com o comando:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y

Você deve ver a seguinte mensagem depois que a instalação terminar:

Rust is installed now. Great!
 
To get started you may need to restart your current shell.
This would reload your PATH environment variable to include
Cargo's bin directory ($HOME/.cargo/bin).
 
To configure your current shell, you need to source
the corresponding env file under $HOME/.cargo.
 
This is usually done by running one of the following (note the leading DOT):
. "$HOME/.cargo/env"            # For sh/bash/zsh/ash/dash/pdksh
source "$HOME/.cargo/env.fish"  # For fish

Atualize o PATH (preste atenção no ponto no início da linha).

. "$HOME/.cargo/env"

Verifique se a instalação foi bem sucedida.

rustc --version

Você deve ver algo parecido com isso:

rustc 1.80.1 (3f5fd8dd4 2024-08-06)

Instalação das ferramentas da Solana

Agora vamos instalar as ferramentas para interagir com a rede Solana.

sh -c "$(curl -sSfL https://release.anza.xyz/stable/install)"

Atualize o PATH.

export PATH="/Users/test/.local/share/solana/install/active_release/bin:$PATH"

Atualize a variável PATH no arquivo de configurações do shell.

export PATH="$HOME/.local/share/solana/install/active_release/bin:$PATH"

Verifique a instalação.

solana --version

Você deve ver algo similar a isso:

solana-cli 1.18.22 (src:9efdd74b; feat:4215500110, client:Agave)

Atualize as ferramentas Solana.

agave-install update

Instalação do framework ANCHOR

cargo install --git https://github.com/coral-xyz/anchor avm --force

Teste a instalação.

avm --version

Atualize para a última versão.

avm install latest
avm use latest

Verifique se tudo deu certo.

anchor --version

Você deve ver algo como:

anchor-cli 0.30.1

Últimas providências

Para ver as configurações atuais, use:

solana config get

A saída deve ser similar a:

Config File: /Users/test/.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/test/.config/solana/id.json
Commitment: confirmed

Se a saída acima mostrar o uso da rede devnet, certifique-se de estar usando a mainnet da Solana com o comando:

solana config set --url mainnet-beta

Outros comandos que serão usados adiante são:

solana address

e

solana balance

Crie um diretório onde serão armazenados os arquivos do token e vá para lá.

mkdir new-token

cd new-token

Criando os pares de chave

Crie um par de chaves para a autoridade emissora. Usaremos um início de chave personalizado para facilitar a identificação depois. Aqui serão usadas as letras ’bos’ de chefe, em inglês (boss). Você pode usar qualquer combinação de letras, mas o uso de mais de 3 letras faz com que a criação das chaves demore muito, porque o comando a seguir vai buscar chaves públicas que contenham estes caracteres no início da chave.

solana-keygen grind --starts-with bos:1

Este comando vai salvar o par de chaves em um arquivo JSON. O nome do arquivo gerado, sem a extensão ’.json’ é a sua chave pública e o endereço que deve receber algumas solanas para a criação do token. $3 é mais do que suficiente. A chave privada está dentro do arquivo e pode ser importada para a Phantom wallet, se você quiser ver o saldo por lá e retirar o que sobrar depois.

O arquivo será parecido com isso:

bosy1VC2BH2gh5fdXA3oKn53EuATLwapLWC4VR2sGHJ.json

No caso acima a chave pública é bosy1VC2BH2gh5fdXA3oKn53EuATLwapLWC4VR2sGHJ.

Salve ela em algum lugar (em um arquivo txt, por exemplo).

Configure a Solana CLI para usar o par de chaves que você acabou de criar. IMPORTANTE: substitua o arquivo json pelo seu.

solana config set --keypair bosy1VC2BH2gh5fdXA3oKn53EuATLwapLWC4VR2sGHJ.json

Verifique as configurações com o comando:

solana config get

Confirme que você está na mainnet e que a variável Keypair Path aponta para o arquivo com o par de chaves que você criou.

Confirme seu endereço com:

solana address

E envie algumas solanas para ele, se você ainda não fez isso. Poucos segundos após o envio você poderá confirmar o saldo com o comando:

solana balance

Crie mais um par de chaves, para a conta de cunhagem do token. Ela começara com ’mnt’ para lembrar que é a conta de cunhagem (’mint account’ em ingês)

solana-keygen grind --starts-with mnt:1

A lógica é a mesma do primeiro par de chaves criado. O nome do arquivo sem a extensão ’.json’ é o endereço público.

O comando acima criará mais um arquivo json com o par de chaves, como o abaixo (esse arquivo será usado no comando de criação do token):

mntTymSqMU4e1NEDdxJ9XoPN4MitCgQ7xxGW6AuRAWQ.json

Salve a chave pública ’mnt’ no arquivo de texto junto com a chave ’bos’.

Agora vamos começar a criação do token propriamente dita.

Criando uma conta no GitHub e fazendo o upload dos arquivos necessários

Crie uma conta no GitHub, se você ainda não tiver uma. É interessante criar uma só para o seu token e criar uma pasta ’crypto’ nela.

Crie o logo do seu token com as seguintes regras:

  1. a imagem deve ser quadrada, de preferência 512px x 512px, ou menor

  2. a imagem deve ser no formato .png

  3. o arquivo deve ter menos de 200kb

Faça o upload do arquivo para a pasta ’crypto’ da sua conta github e descubra o endereço ’raw’ da imagem. Para isso, depois de subir o arquivo ’logo.png’, clique no nome do arquivo para abrir a imagem e depois clique com o botão direito do mouse na imagem e escolha ’abrir em uma nova guia’. Vá para a guia aberta e copie o endereço que está na barra de url e que aponta diretamente para a imagem. O endereço deve parecer com isso:

https://raw.githubusercontent.com/seuusuarionogithub/suapasta/refs/heads/main/
logo.png

Anote este endereço lá no seu arquivo ’.txt’.

Metadata

Crie o arquivo ’metadata.json’ com o seguinte conteúdo (coloque os dados do SEU token – nome, simbolo e endereço da imagem do seu logo):

{
  "name": "Example Token",
  "symbol": "EXMPL",
  "description": "Example token from Solana Making a Token guide.",
  "image": "https://raw.githubusercontent.com/solana-developers/opos-asset/
  main/assets/CompressedCoil/image.png"
}

Suba esse arquivo para a sua pasta no github e descubra o endereço ’raw’ do arquivo. Para isso, depois do upload concluído, clique no nome do arquivo, ele vai abrir e no lado direito da página vai ter um botão raw. Clique nele e o arquivo vai abrir. Anote o endereço da url, como você fez com o endereço do logo.

Criando o token

Agora vamos criar o token usando o par de chaves ’mnt’.

Por padrão o token é criado com 9 casas decimais, você pode personalizar o número com a opção --decimals n, onde ’n’ é o número de casas decimais. Se não for usada essa opção o token será criado com 9 casas decimais.

Use o seguinte comando:

spl-token create-token
--program-id TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb
--enable-metadata arquivodechavesmnt.json

Usando o arquivo de chaves ’mnt’ do exemplo acima, e com a opção de 6 casas decimais, o comando fica assim:

spl-token create-token
--program-id TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb --decimals 6
--enable-metadata mntTymSqMU4e1NEDdxJ9XoPN4MitCgQ7xxGW6AuRAWQ.json}

Se não for usada a opção --program-id TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb, não será possível incluir metadados (nome, logo etc)

Inicializando os metadados

Agora vamos adicionar os metadados ao token.

spl-token initialize-metadata 'endereço público mnt' 'Nome do token' 'SIMBOLO' 
'Endereço do seu arquivo de metadados'

Usando os exemplos que estão mais acima, o comando fica assim:

spl-token initialize-metadata mntTymSqMU4e1NEDdxJ9XoPN4MitCgQ7xxGW6AuRAWQ
'Example token' 'EXMPL' https://raw.githubusercontent.com/solana-developers/
opos-asset/main/assets/CompressedCoil/metadata.json

Você já pode ir na Solana explorer para ver seu token.

Cunhagem dos tokens

Vamos criar a conta onde os tokens serão armazenados. Coloque no comando a SUA chave pública ’mnt’

spl-token mint 'chave_publica_mnt' 'numero_de_tokens'

Exemplo de criação de 1 bilhão de tokens. Você pode cunhar quantos quiser e pode cunhar várias vezes:

spl-token mint mntTymSqMU4e1NEDdxJ9XoPN4MitCgQ7xxGW6AuRAWQ 1000000000

Agora você pode voltar no Solana explorer para ver a quantidade de tokens que você acabou de criar.

Movendo os seus tokens

Para enviar tokens para outra pessoa use:

spl-token transfer 'chave_publica_mnt' 'quantidade' 
'endereço_da_carteira_de_destino' --fund-recipient

Exemplo:

spl-token transfer mntTymSqMU4e1NEDdxJ9XoPN4MitCgQ7xxGW6AuRAWQ 10 
endereçopublicodacarteirasolanadedestino --fund-recipient

A opção --fund-recipient deve ser usada para poder ser criada uma conta no endereço de destino.

Para pegar de volta as solanas que sobraram e mandar o saldo de volta para a sua conta de solana, faça o seguinte:

Veja o saldo com:

solana balance

Transfira o saldo, menos a taxa com:

solana transfer 'seu_saldo_de_solana'

Tente mandar o saldo total, vai aparecer uma mensagem de erro informando que não há saldo para pagar a taxa da rede, refaça a transferência usando o saldo menos a taxa:

Ou você pode importar a chave privada que está dentro do arquivo ’bos….json’ na Phantom e sacar o saldo de solana por lá.

Referências

https://solana.com/pt/docs/intro/installation

https://solana.com/developers/guides/getstarted/how-to-create-a-token

1 comentário em “Criando tokens na rede Solana”

Deixe um comentário

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Rolar para cima