Skip to content

Como Criar um Endereço de Carteira Personalizado Usando a Solana CLI

Como Criar um Endereço de Carteira Personalizado Usando a Solana CLI

Visão geral

Você já percebeu que alguns endereços de conta Solana têm prefixos ou sufixos definidos (por exemplo, DUSTawucrTsGU8hcqRdHDCbuYhCPADMLM2VcCb8VnFnQ)?

https://www.quicknode.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBbThFIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--5318c3d8398d47ff7ccd64549c36ad2e94447bb7/example.png

Isso não pode ser aleatório, certo? Correto! A Solana CLI tem algumas ferramentas poderosas para gerar seu próprio endereço de carteira personalizado. Neste guia, você criará seu próprio endereço de carteira personalizado usando a Solana CLI e a ferramenta grind.

Do que você precisará:

  • Um terminal de linha de comando
  • A Solana CLI instalada

Configure seu projeto

Crie um novo diretório de projeto em seu terminal com:

mkdir custom-wallet
cd custom-wallet

Verifique se a ferramenta “Solana CLI” está instalada e atualizada. No seu terminal, digite:

solana --version

Para verificar e instalar atualizações, em seu terminal, digite:

solana-install update

Você deve ver algo assim:

https://www.quicknode.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBbkFFIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--b24705dd2f211aef5a5153d7950f4866097878fa/update.png

Vamos começar.

Usando Solana-Keygen

A Solana CLI tem um comando nativo para criar novos pares de chaves, o Solana-Keygen. Os comandos do Solana-Keygen seguem o seguinte formato:

solana-keygen [OPTIONS] <SUBCOMMAND>

Options (opções) e subcommands (subcomandos) são descritos no menu de ajuda. Você pode verificá-los e todas as funcionalidades do Solana-Keygen inserindo o subcomando help (ajuda) em seu terminal:

solana-keygen --help

Você deve ver um menu de ajuda semelhante a este:

https://www.quicknode.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBbkVFIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--8dee54e062b4f828951b2534615cba1a158c67a6/help.png

Você deve ver um subcomando, grind. Nós o usaremos para gerar sua carteira personalizada. Esse subcomando gera chaves até encontrar uma que atenda aos seus critérios de pesquisa. Vamos testar!

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

Você deve ver uma resposta como esta em seu terminal:

custom-wallet % solana-keygen grind --starts-with a23:1
Searching with 10 threads for:
        1 pubkey that starts with 'a23' and ends with ''
Wrote keypair to a23...mgr.json

Épico! Você acabou de criar seu primeiro endereço de carteira personalizado, que começa com 1 instância (definida pelo ":1") de "a23". Você deve ver um arquivo .json na pasta do seu projeto com a chave privada do novo endereço. Isso pode ser importado em seu projeto Solana ao usar o Solana JS SDK utilizando:

const keypair = Keypair.fromSecretKey(Uint8Array.from(ARRAY_IN_JSON FILE));

Antes de verificar alguns outros recursos do solana-keygen, vamos aplicar o grind em uma carteira que começa com 123456789. No seu terminal, digite:

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

Sua CLI deve mostrar uma atualização a cada alguns segundos, informando que a pesquisa continua e que nenhuma correspondência foi encontrada:

custom-wallet % solana-keygen grind --starts-with 123456789:1                     	 
Searching with 10 threads for:
        1 pubkey that starts with '123456789' and ends with ''
Searched 1000000 keypairs in 1s. 0 matches found.
Searched 2000000 keypairs in 3s. 0 matches found.
Searched 3000000 keypairs in 5s. 0 matches found.
etc.

Pressione Ctrl + C para cancelar sua pesquisa, ou você poderá ficar esperando por muito tempo. Este é um bom exemplo de como o subcomando grind funciona. Ele procura um par de chaves (keypair), verificando se ele corresponde a seus critérios e tentando novamente até que seus critérios sejam atendidos. Essa ilustração mostra que é significativamente mais difícil encontrar um endereço com nove variáveis definidas pelo usuário do que três. Dito isto, é comum aplicar o grind em endereços com apenas 2-5 caracteres definidos. Além disso, você irá utilizar uma quantidade incrível de poder computacional e esperar muito tempo.

Agora vamos explorar alguns dos outros recursos do solana-keygen. No seu terminal, digite:

solana-keygen grind --help

Observe o comando acima, pois é sempre um ótimo ponto de referência se você esquecer como usar o comando!

Você verá três seções: Usage (uso), Flags (sinalizadores) e Options (sinceramente, eu vejo os sinalizadores como apenas um tipo diferente de opções, mas a Solana CLI os separa):

Usage mostra o formato de nossos comandos. Nós sempre começamos solana-keygen grind seguido de quaisquer sinalizadores e opções: solana-keygen grind [FLAGS] [OPTIONS]

Sua consulta de busca:

  • --starts-with PREFIX:COUNT, onde PREFIX é o prefixo personalizado desejado que você está procurando e COUNT é o número de pares de chaves a serem geradas (por exemplo, --starts-with first:2 irá gerar dois pares de chaves com um endereço de carteira que comece com quick).
  • --ends-with SUFFIX:COUNT, onde SUFFIX é o sufixo personalizado desejado que você está procurando e COUNT é o número de pares de chaves a serem geradas (por exemplo, --starts-with node:1 gerará um par de chaves com um endereço de carteira que termine com node).
  • --starts-and-ends-with PREFIX:SUFFIX:COUNT, onde PREFIX é o prefixo personalizado desejado que você está procurando, SUFFIX é o sufixo personalizado desejado que você está procurando e COUNT é o número de pares de chaves a serem geradas (por exemplo, --starts-and-ends-with quick:node:3 gerará três pares de chaves com um endereço de carteira que comece com quick e termine com node).
  • Nota: PREFIX e SUFFIX devem ser do tipo Base58 (A-Z, a-z, 0-9) exceto caracteres fáceis de se confundir (zeros (0), i (I) e o (O) maiúsculos, is (I) minúsculos).

Outras opções:

  • --ignore-case fará sua pesquisa não sensível a maiúsculas e minúsculas (sensível por padrão)
  • --use-mnemonic - por padrão, a função grind salva uma chave privada, e não uma frase-chave mnemônica. Este sinalizador será gerado usando uma frase-chave mnemônica. Espere uma desaceleração significativa neste modo.
  • --no-outfile (deve ser usado em conjunto com --use-mnemonic). Imprime apenas uma frase-semente e pubkey. Não gera um arquivo de par de chaves.
  • --no-bip39-passphrase (deve ser usado em conjunto com --use-mnemonic). Não solicita uma senha BIP39 (esta senha melhora a segurança da frase-semente de recuperação, NÃO do próprio arquivo do par de chaves, que é armazenado como texto simples inseguro)
  • --word-count (deve ser usado em conjunto com --use-mnemonic). Especifica o número de palavras que estarão na frase-semente gerada (padrão: 12)
  • --language <LANGUAGE> (deve ser usado em conjunto com --use-mnemonic) especifique o idioma para a frase mnemônica (inglês, chinês simplificado, chinês tradicional, japonês, espanhol, coreano, francês, italiano)
  • --num-threads <NUMBER> Especifica o número de threads do grind [padrão: 10]
  • -C, --config <FILEPATH> Arquivo de configuração a ser usado

Há muita informação nisso, então não se preocupe se não fizer muito sentido. A melhor forma de aprender é testando!

Criar uma carteira personalizada

Hora de testar! Você pode procurar acima se precisar de ajuda. Gere um único endereço que comece com a inicial do seu primeiro nome e termine com a inicial do seu último nome (não sensível a maiúsculas e minúsculas). Crie uma frase mnemônica japonesa de 24 palavras que não tenha saída .json ou senha bip39.

Depois de ter tentado sozinho, você pode dar uma olhada em como fizemos abaixo:

solana-keygen grind --starts-and-ends-with A:M:1 --ignore-case --use-mnemonic --word-count 24 --language japanese --no-outfile --no-bip39-passphrase

Como você se saiu? Se tudo deu certo, você deve ver uma resposta em seu terminal que diz "Found matching key” (Chave correspondente encontrada) com o endereço da sua carteira e a frase inicial! Muito legal, não é mesmo?

Se desejar, você pode fazer uma pesquisa reversa com sua frase inicial usando este comando:

solana-keygen pubkey prompt://

Recomendo experimentar cada opção para entender como tudo funciona e assim fazer o endereço dos seus sonhos!

Fique seguro lá fora!

Lembre-se, independentemente de como você cria novas sementes ou carteiras, pratique as melhores práticas de segurança de carteira. Publicamos um Guia: Uma introdução às carteiras criptográficas e como mantê-las seguras para ajudá-lo.

Sua carteira personalizada está apenas te dando um gostinho do que você está buscando? Confira nosso Guia: Como criar um domínio .sol usando o Solana Naming Service para criar um nome de domínio .sol personalizado.

Criou uma carteira bacana? Envie-nos uma nota no Discord ou no Twitter e compartilhe!

Nós adoramos feedback!

Se você tiver algum feedback ou perguntas sobre este guia, deixe-nos saber. Adoraríamos ouvir de você!

Este guia foi publicado por Quicknode. Traduzido por Paulinho Giovannini.