Solana Keychain proporciona una interfaz unificada para firmar transacciones de Solana en múltiples backends de gestión de claves. Desarrolla localmente con una clave en memoria, y luego cambia a gestión de claves empresarial, HSMs en la nube o servicios de billetera gestionados en producción — sin reescribir tu código de firma.
¿Por qué Keychain?
- Interfaz única: Un solo trait
SolanaSignerfunciona en todos los backends - Intercambio de backends: Cambia de proveedor de gestión de claves mediante configuración, no código
- Abstracción de coste cero: Los feature flags incluyen solo lo que necesitas
- Auditado: Revisado en materia de seguridad por Accretion
Arquitectura
- Lenguajes: Rust + TypeScript, con paridad total
- Trait: Interfaz unificada
SolanaSigner - Backends: Memory, Vault, AWS KMS, GCP KMS, Privy, Turnkey, Fireblocks, CDP, Crossmint, Dfns, Openfort, Para, Utila
- Compatibilidad:
@solana/kite@solana/signerscompatibles (TypeScript) |solana-sdkysolana-sdk-v3compatibles (Rust)
Backends Soportados
Los backends abarcan el desarrollo local, la gestión de claves autohospedada y en la nube, y servicios de billetera gestionados o MPC. Consulta Cómo elegir un backend para comparar los modelos de custodia y elegir el más adecuado.
| Backend | Caso de uso | Rust | TypeScript |
|---|---|---|---|
| Memory | Desarrollo, pruebas | ✓ | ✓ |
| HashiCorp Vault | Gestión de claves autohospedada | ✓ | ✓ |
| AWS KMS | Nativo en la nube (AWS) | ✓ | ✓ |
| GCP KMS | Nativo en la nube (GCP) | ✓ | ✓ |
| Privy | Billeteras integradas | ✓ | ✓ |
| Turnkey | Gestión de claves sin custodia | ✓ | ✓ |
| Fireblocks | Custodia institucional | ✓ | ✓ |
| CDP | Coinbase Developer Platform | ✓ | ✓ |
| Crossmint | Billeteras gestionadas Crossmint | ✓ | ✓ |
| Dfns | Infraestructura de billeteras Dfns | ✓ | ✓ |
| Openfort | Billeteras backend Openfort | ✓ | ✓ |
| Para | Billeteras MPC Para | ✓ | ✓ |
| Utila | Custodia MPC Utila | ✓ | ✓ |
Inicio rápido
Rust
Instala el crate de 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?;
- Guía de Rust - Instalación completa y configuración del backend
- Crates.io - Crate de Rust
TypeScript
Instala el paquete de 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);
- Guía de TypeScript -
Paquetes
@solana/keychain - Paquete npm - Paquete npm
Próximos pasos
Guía de Rust
Instala el crate y configura cada backend.
Guía de TypeScript
Instala los paquetes y configura cada backend.
Elegir un backend
Compara los modelos de custodia y elige el backend de firma adecuado.
Buenas prácticas en producción
Opera la firma de forma segura: separación en caliente/frío, rotación y monitoreo.
Añadir firmantes personalizados
Integra un nuevo backend de gestión de claves.
Fuente
Desarrollado y mantenido por la Solana Foundation. Con licencia MIT.
Is this page helpful?