WEB3DEV

Cover image for Como Criar um Endereço de Carteira Personalizado Usando a Solana CLI
Paulo Gio
Paulo Gio

Posted on • Atualizado em

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
Enter fullscreen mode Exit fullscreen mode

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

solana --version
Enter fullscreen mode Exit fullscreen mode

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

solana-install update
Enter fullscreen mode Exit fullscreen mode

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>
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

É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));
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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.
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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://
Enter fullscreen mode Exit fullscreen mode

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.

Latest comments (0)