O Solana Keychain fornece uma interface unificada para assinar transações Solana em múltiplos backends de gerenciamento de chaves. Use-o para integrar assinatura de nível empresarial nos seus serviços de backend.
Por que Keychain?
- Interface Única: Um trait
SolanaSignerfunciona em todos os backends - Troque de Backends: Mude de provedores de gerenciamento de chaves sem reescrever código
- Abstração de Custo Zero: Feature flags incluem apenas o que você precisa
Arquitetura
- Linguagens: Rust + TypeScript
- Trait: Interface unificada
SolanaSigner - Backends: Memory, Vault, AWS KMS, GCP KMS, Privy, Turnkey, Fireblocks, CDP, Crossmint, Dfns, Openfort, Para
- Compatibilidade: Compatível com
@solana/kite@solana/signers(TypeScript) | Compatível comsolana-sdkesolana-sdk-v3(Rust)
Backends Suportados
| Backend | Caso de Uso | Rust | TypeScript |
|---|---|---|---|
| Memory | Desenvolvimento, testes | ✓ | ✓ |
| HashiCorp Vault | HSM auto-hospedado | ✓ | ✓ |
| AWS KMS | Nativo da nuvem (AWS) | ✓ | ✓ |
| GCP KMS | Nativo da nuvem (GCP) | ✓ | ✓ |
| Privy | Carteiras incorporadas | ✓ | ✓ |
| Turnkey | Não custodial | ✓ | ✓ |
| Fireblocks | MPC institucional | ✓ | ✓ |
| CDP | Coinbase Developer Platform | ✓ | ✓ |
| Crossmint | Carteiras gerenciadas Crossmint | ✓ | ✓ |
| Dfns | Infraestrutura de carteiras Dfns | ✓ | ✓ |
| Openfort | Carteiras incorporadas Openfort | ✓ | ✓ |
| Para | Carteiras MPC Para | ✓ | ✓ |
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 -
@solana/keychainpacotes - Pacote npm - Pacote npm
Outros Recursos
- Adicionar Signatários Personalizados - Integre novos backends
- Lançamentos no GitHub - Histórico de lançamentos
Código-Fonte
Desenvolvido e mantido pela Solana Foundation.
Licenciado sob MIT. Consulte LICENSE para detalhes.
Is this page helpful?