Uma transação só é executada se contiver uma
assinatura válida de cada
assinante obrigatório. Durante o desenvolvimento local, você geralmente mantém essa chave como um
Keypair e assina diretamente. Em
produção, a questão importante é outra: onde fica a chave privada
e quem está autorizado a assinar com ela?
Nunca incorpore chaves privadas em código do lado do cliente, nem as inclua em um frontend ou as envie para o controle de versão. Qualquer pessoa que obtiver uma chave ganha controle total dos fundos dessa conta.
Abordagens de assinatura
| Abordagem | Onde fica a chave | 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 de frontend onde os usuários assinam suas próprias transações |
| KMS / HSM na 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 | Dividida ou custodiada na infraestrutura de um provedor | O provedor co-assina de acordo com sua política | Carteiras embarcadas, fluxos de aprovação, custódia institucional |
O keypair local é a única abordagem que coloca o material bruto da chave dentro da sua aplicação. Toda abordagem de produção mantém a chave em uma infraestrutura dedicada e solicita a essa infraestrutura que assine em seu nome.
Assinatura no backend
Quando um servidor precisa assinar (pagar taxas, enviar transações de programas ou
operar uma tesouraria), 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, TypeScript, Python e Go) que expõe uma única
interface SolanaSigner em todos os backends da tabela acima: Memory,
HashiCorp Vault, AWS KMS, GCP KMS, Fireblocks, Privy, Turnkey, CDP, Crossmint,
Dfns, Para, Openfort, Utila e Fordefi.
Como a interface é compartilhada entre os backends, você pode desenvolver localmente com uma
chave em memória e migrar para um backend de produção por meio de configuração, sem
reescrever o código da aplicação (os backends que fazem o broadcast por você, como a Crossmint,
são chamados por meio de um fluxo de assinatura e envio). O Keychain é compatível com
@solana/kit, o
SDK de Rust, solders (Python) e solana-go v2
(Go).
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?