Solana Keychain fornisce un'interfaccia unificata per la firma delle transazioni Solana su più backend di gestione delle chiavi. Sviluppa in locale con una chiave in memoria, poi passa alla gestione enterprise delle chiavi, HSM cloud o servizi di wallet gestiti in produzione — senza riscrivere il codice di firma.
Perché Keychain?
- Interfaccia Unica: Un solo trait
SolanaSignerfunziona su tutti i backend - Cambio di Backend: Cambia i provider di gestione delle chiavi tramite configurazione, non codice
- Astrazione a Costo Zero: I feature flag includono solo ciò di cui hai bisogno
- Verificato: Revisione della sicurezza eseguita da Accretion
Architettura
- Linguaggi: Rust + TypeScript, con piena parità
- Trait: Interfaccia unificata
SolanaSigner - Backend: Memory, Vault, AWS KMS, GCP KMS, Privy, Turnkey, Fireblocks, CDP, Crossmint, Dfns, Openfort, Para, Utila
- Compatibilità: compatibile con
@solana/kite@solana/signers(TypeScript) | compatibile consolana-sdkesolana-sdk-v3(Rust)
Backend Supportati
I backend coprono lo sviluppo locale, la gestione delle chiavi self-hosted e cloud, e servizi di wallet gestiti o MPC. Consulta Scegliere un backend per confrontare i modelli di custodia e scegliere quello più adatto.
| Backend | Caso d'Uso | Rust | TypeScript |
|---|---|---|---|
| Memory | Sviluppo, testing | ✓ | ✓ |
| HashiCorp Vault | Gestione chiavi self-hosted | ✓ | ✓ |
| AWS KMS | Cloud-native (AWS) | ✓ | ✓ |
| GCP KMS | Cloud-native (GCP) | ✓ | ✓ |
| Privy | Wallet integrati | ✓ | ✓ |
| Turnkey | Gestione chiavi non-custodial | ✓ | ✓ |
| Fireblocks | Custodia istituzionale | ✓ | ✓ |
| CDP | Coinbase Developer Platform | ✓ | ✓ |
| Crossmint | Wallet gestiti da Crossmint | ✓ | ✓ |
| Dfns | Infrastruttura wallet Dfns | ✓ | ✓ |
| Openfort | Wallet backend Openfort | ✓ | ✓ |
| Para | Wallet MPC Para | ✓ | ✓ |
| Utila | Custodia MPC Utila | ✓ | ✓ |
Avvio rapido
Rust
Installa il crate Rust:
cargo add solana-keychain
Utilizzo di base:
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?;
- Guida Rust - Installazione completa e configurazione del backend
- Crates.io - Crate Rust
TypeScript
Installa il pacchetto TypeScript:
pnpm add @solana/keychain
Utilizzo di base:
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);
- Guida TypeScript -
Pacchetti
@solana/keychain - Pacchetto npm - Pacchetto npm
Prossimi passi
Guida Rust
Installa il crate e configura ogni backend.
Guida TypeScript
Installa i pacchetti e configura ogni backend.
Scelta del backend
Confronta i modelli di custodia e scegli il backend di firma più adatto.
Best practice per la produzione
Gestisci la firma in modo sicuro: separazione hot/cold, rotazione, monitoraggio.
Aggiunta di firmatari personalizzati
Integra un nuovo backend di gestione delle chiavi.
Sorgente
Sviluppato e mantenuto dalla Solana Foundation. Distribuito sotto licenza MIT.
Is this page helpful?