Uma transação só é executada se contiver uma
assinatura válida de
cada assignante obrigatório. Durante o desenvolvimento local, você normalmente
mantém essa chave como um
Keypair e assina diretamente.
Em produção, a questão importante é diferente: onde a chave privada reside e
quem está autorizado a emitir uma assinatura com ela?
Nunca incorpore chaves privadas em código do lado do cliente, não as inclua em um frontend, nem as confirme no controle de versão. Qualquer pessoa que obtenha uma chave obtém controle total dos fundos dessa conta.
Abordagens de assinatura
| Abordagem | Onde a chave reside | Quem assina | Ideal para |
|---|---|---|---|
| keypair local | Um arquivo ou variável de ambiente na máquina | Seu código, diretamente | Desenvolvimento local, testes, CI |
| Carteira de navegador | A carteira do usuário final (ex.: Phantom, Solflare) | O usuário final, por transação | dApps frontend onde os usuários assinam suas próprias transações |
| KMS / HSM em nuvem | Um serviço de chaves com suporte de hardware (AWS KMS, GCP KMS, Vault) | Seu backend solicita uma assinatura ao serviço | Serviços de backend, operações de tesouraria, ambientes regulados |
| Carteiras gerenciadas / MPC | Divididas ou custodiadas na infraestrutura de um provedor | O provedor co-assina conforme sua política | Carteiras integradas, fluxos de aprovação, custódia institucional |
O keypair local é a única abordagem que coloca o material de chave bruto dentro da sua aplicação. Todas as abordagens de produção mantêm a chave em infraestrutura dedicada e solicitam que essa infraestrutura assine em seu nome.
Assinatura no backend
Quando um servidor precisa assinar — pagando taxas, enviando transações de
programa ou operando um tesouro — use um backend dedicado de gerenciamento de
chaves em vez de um keypair bruto. A Solana Foundation mantém o
Keychain, uma biblioteca de assinatura unificada (Rust e
TypeScript) que expõe uma interface SolanaSigner em todos os backends da
tabela acima: Memory, HashiCorp Vault, AWS KMS, GCP KMS, Fireblocks, Privy,
Turnkey, CDP, Crossmint, Dfns, Para, Openfort e Utila.
Como a interface é idêntica em todos os backends, você pode desenvolver
localmente com uma chave em memória e alternar para um backend de produção por
meio de configuração, sem reescrever o código da aplicação. O Keychain é
compatível com @solana/kit e o
Rust SDK.
Keychain
Assinatura unificada para chaves locais, KMS, HSM e backends de carteiras gerenciadas.
Escolhendo um backend
Compare modelos de custódia e escolha o backend de assinatura ideal para sua aplicação.
Para o checklist completo de produção — gerenciamento de chaves, segurança de RPC e monitoramento — consulte Prontidão para Produção.
Is this page helpful?