Keypairs com solana-keygen
Gere keypairs Ed25519, recupere wallets de seed phrases e faça grind de endereços vanity com solana-keygen.
Receita
Card de receita de referência rápida - pronto para copiar e colar.
# New keypair (interactive passphrase optional)
solana-keygen new --outfile ~/.config/solana/id.json
# Recover from 12/24-word seed phrase
solana-keygen recover -o recovered.json
# Vanity prefix (slow - increase --num-threads)
solana-keygen grind --starts-with abc:1 --ignore-caseQuando usar:
- Setup inicial da CLI antes de
solana config set --keypair. - Recuperar wallet em máquina nova a partir de seed phrase.
- Criar keys separadas de deployer, upgrade authority ou tesouraria.
- Grind de prefixo vanity para branding (espere runtimes longos).
Exemplo Funcional
mkdir -p ~/.config/solana
solana-keygen new --outfile ~/.config/solana/id.json --no-bip39-passphrase
solana config set --keypair ~/.config/solana/id.json
solana address
# Backup seed phrase when prompted - store offline, never in git
chmod 600 ~/.config/solana/id.jsonO que isso demonstra:
- Cria arquivo keypair Ed25519 padrão que a CLI lê para assinar.
--no-bip39-passphrasepula camada extra de criptografia (apenas dev).chmod 600restringe acesso de leitura à sua conta de usuário.solana addressconfirma que public key corresponde às expectativas.
Aprofundamento
Como Funciona
- Solana usa Ed25519; arquivo keypair é array JSON de 64 bytes de secret key.
solana-keygen newpode emitir seed phrase BIP39 para recuperação.- Public keys são endereços de 32 bytes codificados em base58 mostrados por
solana address. - Grind vanity busca keys aleatórias até padrão de prefixo corresponder.
Layout do Arquivo Keypair
| Campo | Formato | Notas |
|---|---|---|
| Secret key | Array JSON de bytes (64 bytes) | Contém seed + bytes de public key |
| Passphrase | BIP39 opcional | Criptografa arquivo em disco quando definida |
| Seed phrase | 12 ou 24 palavras | Caminho de backup independente para a mesma key |
Notas bash
# Verify pubkey without exposing the secret file contents
solana-keygen pubkey ~/.config/solana/id.json
# Prompt for passphrase-protected key during recover
solana-keygen recover prompt:// -o recovered.jsonErros Comuns
- Commitar arquivos keypair - JSON de key em git vaza fundos instantaneamente. Correção: adicione caminhos
*.jsonde key ao.gitignoree use hardware ou secrets CI para produção. - Pular backup de seed phrase - falha de disco significa keys irrecuperáveis. Correção: escreva a phrase offline antes de financiar a wallet.
- Reusar um keypair em todo lugar - authority de deploy e dev diário compartilham mesma superfície de risco. Correção: keypairs separados por papel e cluster.
- Grind vanity em laptops - prefixos longos levam horas ou dias. Correção: limite comprimento de prefixo, use
--num-threadsou aceite match mais curto. - Overwrite errado de outfile -
solana-keygen newsobrescreve caminhos existentes sem prompt em scripts. Correção: verifiquetest -fantes de gerar em automação.
Alternativas
| Alternativa | Use Quando | Não Use Quando |
|---|---|---|
| Hardware wallet (Ledger) | Tesouraria mainnet e upgrade authority | Iteração localnet rápida |
solana-keygen recover | Restaurar de seed phrase | Gerar keys novas |
| Wallet de browser (Phantom) | Assinatura de usuário final em dApps | Pipelines CI de deploy headless |
Helpers de key mucho | Workflows de scaffold Foundation | Você só precisa de uma key de dev |
FAQs
Qual formato do arquivo keypair?
Array JSON de 64 bytes unsigned representando secret key Ed25519. CLI e Anchor leem este formato nativamente.
Seed phrase é igual ao arquivo JSON?
Codificam o mesmo material de key quando criados juntos. Você pode recuperar JSON da phrase com solana-keygen recover, mas não pode derivar phrase do JSON se não registrou.
Devo usar passphrase no arquivo keypair?
Sim para qualquer key com fundos mainnet. Para keys devnet descartáveis, --no-bip39-passphrase é comum mas nunca commite esses arquivos.
Como imprimir apenas a public key?
solana-keygen pubkey path/to/keypair.jsonDuas máquinas podem compartilhar keypair com segurança?
Apenas via secrets manager ou canal criptografado - nunca Slack ou email. Prefira keys separadas por máquina para dev e key única com hardware para papéis de produção.
Quanto custa grind vanity?
Tempo de CPU cresce exponencialmente com comprimento de prefixo. Prefixo de 3 caracteres é rápido; 6+ pode precisar hardware dedicado ou runs overnight.
Como recuperar com seed protegida por passphrase?
Execute solana-keygen recover prompt:// e digite a phrase quando solicitado. Use formas ASK ou prompt:// documentadas em solana-keygen recover --help.
solana-keygen funciona no Windows?
Sim via WSL ou builds nativos do instalador Agave. Caminhos diferem - use equivalentes %USERPROFILE%\.config\solana\.
Quais permissões o arquivo key deve ter?
chmod 600 em Unix para apenas seu usuário ler os bytes secretos.
Como isso difere de keypair de programa?
Keypairs de deploy de programa assinam transações de deploy; program IDs vêm da public key do keypair do programa. Armazene keys de programa com o mesmo cuidado que keys de tesouraria.
Relacionado
- Noções Básicas da Solana CLI - configuração de keypair padrão
- Airdrops e Saldos - financiar nova pubkey
- Implantando Programas - keypairs de deploy de programa
- Boas Práticas da Solana CLI - regras de higiene de keys
Versões do stack: Esta página foi escrita para Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, anchor-lang 0.32.1, Rust 1.91.1, @solana/kit 7.0.0, Surfpool 0.12.0 e LiteSVM 0.6.x.