Carteiras e Gerenciamento de Chaves
Gerencie keypairs, derivação HD e fluxos de assinatura em carteiras e validadores Rust sem vazar segredos.
Busque em todas as páginas da documentação
Gerencie keypairs, derivação HD e fluxos de assinatura em carteiras e validadores Rust sem vazar segredos.
use ed25519_dalek::SigningKey;
use rand::rngs::OsRng;
struct KeyStore {
signing: SigningKey,
}
impl KeyStore {
fn generate() -> Self {
Self {
signing: SigningKey::generate(&mut OsRng),
}
}
fn sign(&self, msg: &[u8]) -> ed25519_dalek::Signature {
use ed25519_dalek::Signer;
self.signing.sign(msg)
}
}Quando usar isso:
Documentação de caminho estilo HD com limite explícito de crate de derivação:
use ed25519_dalek::SigningKey;
use bip39::{Language, Mnemonic, Seed};
use rand::rngs::OsRng;
fn derive_from_mnemonic(words: &str, path: &str) -> anyhow::Result<SigningKey> {
let mnemonic = Mnemonic::parse_in(Language::English, words)?;
let seed = Seed::new(&mnemonic, "");
// Use a crate de derivação SLIP-0010 ou ed25519 específica da cadeia para `path`
let _ = (seed.as_bytes(), path);
Ok(SigningKey::generate(&mut OsRng)) // placeholder: substituir por derivação real
}O que isso demonstra:
Result em vez de panics na UX da carteiram/44'/501'/0'/0' mapeiam contas por cadeia (Solana 501).| Nível | Localização | Uso |
|---|---|---|
| Hot | Memória do App | Bots, pequenos saldos |
| Warm | Disco criptografado | Operações diárias com limites |
| Cold | Hardware/offline | Tesouraria, autoridade de upgrade |
| Alternativa | Usar Quando | Não Usar Quando |
|---|---|---|
| Carteira de extensão de navegador | UX de dApp do consumidor | Assinatura de servidor headless |
| Custódia Fireblocks/Copper | Escala institucional | Produto de autocustódia |
| Carteiras API Turnkey | SLA de assinatura hospedada | Requisito completo on-premise |
| Carteira de papel | Exercício de armazenamento a frio | Necessidades de assinatura frequentes |
HSM ou KMS na nuvem com política IAM; chaves "hot" apenas com limite diário limitado.
O tipo de moeda no caminho seleciona a curva/cadeia - consulte o registro SLIP-0044 para sua rede.
Instrução de transferência de autoridade on-chain, período de execução dupla, depois revogar permissões da chave antiga.
Squads, Gnosis Safe (EVM) ou programas multisig nativos - escolha de acordo com as capacidades da cadeia.
Chaves de devnet em variáveis de ambiente excluídas de builds de produção via flags cfg em tempo de compilação.
scrypt + AES do formato de keystore Ethereum ou arquivos criptografados com age para carteiras CLI.
Contas de consenso e comissão separadas; nunca reutilize a seed da extensão do navegador.
Apenas chaves efêmeras; a assinatura de produção nunca deve ser executada em runners de CI compartilhados.
Registre pubkey, tipo de instrução e resultado da simulação - nunca segredos de pré-imagem de assinatura.
Veja Criptografia Aplicada para algoritmos.
Versões da Stack: Esta página foi escrita para Rust 1.97.0 (edição 2024), Tokio 1.x, Axum 0.8, serde 1.0, sqlx 0.8, clap 4, e Polars 0.46+.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026