O Solana Keychain fornece uma interface unificada para assinar transações Solana em múltiplos backends de gerenciamento de chaves. Desenvolva localmente com uma chave em memória, depois mude para gerenciamento de chaves empresarial, HSMs em nuvem ou serviços de carteira gerenciada em produção — sem reescrever seu código de assinatura.
Por que Keychain?
- Interface Única: Um trait
SolanaSignerfunciona em todos os backends - Troque de Backend: Mude os provedores de gerenciamento de chaves por configuração, não por código
- Abstração de Custo Zero: Flags de recursos incluem apenas o que você precisa
- Auditado: Revisado em segurança pela Accretion
Arquitetura
- Linguagens: Rust + TypeScript, com paridade total
- Trait: Interface unificada
SolanaSigner - Backends: Memory, Vault, AWS KMS, GCP KMS, Privy, Turnkey, Fireblocks, CDP, Crossmint, Dfns, Openfort, Para, Utila
- Compatibilidade:
@solana/kite@solana/signerscompatíveis (TypeScript) |solana-sdkesolana-sdk-v3compatíveis (Rust)
Backends Suportados
Os backends abrangem desenvolvimento local, gerenciamento de chaves auto-hospedado e em nuvem, e serviços de carteira gerenciada ou MPC. Consulte Como escolher um backend para comparar os modelos de custódia e escolher o mais adequado.
| Backend | Caso de Uso | Rust | TypeScript |
|---|---|---|---|
| Memory | Desenvolvimento, testes | ✓ | ✓ |
| HashiCorp Vault | Gerenciamento de chaves próprio | ✓ | ✓ |
| AWS KMS | Nativo em nuvem (AWS) | ✓ | ✓ |
| GCP KMS | Nativo em nuvem (GCP) | ✓ | ✓ |
| Privy | Carteiras integradas | ✓ | ✓ |
| Turnkey | Gerenciamento de chaves sem custódia | ✓ | ✓ |
| Fireblocks | Custódia institucional | ✓ | ✓ |
| CDP | Coinbase Developer Platform | ✓ | ✓ |
| Crossmint | Carteiras gerenciadas Crossmint | ✓ | ✓ |
| Dfns | Infraestrutura de carteiras Dfns | ✓ | ✓ |
| Openfort | Carteiras backend Openfort | ✓ | ✓ |
| Para | Carteiras MPC Para | ✓ | ✓ |
| Utila | Custódia MPC Utila | ✓ | ✓ |
Início Rápido
Rust
Instale o crate Rust:
cargo add solana-keychain
Uso básico:
use solana_keychain::{Signer, SolanaSigner};// Create a signer from any backendlet signer = Signer::from_memory("base58_private_key")?;// All signers share the same interfacelet pubkey = signer.pubkey();let signature = signer.sign_transaction(&mut tx).await?;
TypeScript
Instale o pacote TypeScript:
pnpm add @solana/keychain
Uso básico:
import { createKeychainSigner } from "@solana/keychain";import { signTransactionWithSigners } from "@solana/signers";// Create any signer via the unified factoryconst signer = await createKeychainSigner({backend: "vault",vaultAddr: "https://vault.example.com:8200",vaultToken: "hvs.xxxxx",keyName: "my-solana-key",publicKey: "base58_public_key"});// Sign an already-compiled transactionconst signedTx = await signTransactionWithSigners([signer],compiledTransaction);
- Guia TypeScript - Pacotes
@solana/keychain - Pacote npm - Pacote npm
Próximos passos
Guia Rust
Instale o crate e configure cada backend.
Guia TypeScript
Instale os pacotes e configure cada backend.
Escolhendo um backend
Compare os modelos de custódia e escolha o backend de assinatura adequado.
Melhores práticas para produção
Opere a assinatura com segurança: separação hot/cold, rotação e monitoramento.
Adicionando signatários personalizados
Integre um novo backend de gerenciamento de chaves.
Fonte
Desenvolvido e mantido pela Solana Foundation. Licenciado sob MIT.
Is this page helpful?