Keychain

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 SolanaSigner funciona 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, Fordefi
  • Compatibilidad: @solana/kit e @solana/signers compatibles (TypeScript) | solana-sdk y solana-sdk-v3 compatibles (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.

BackendCaso de usoRustTypeScript
MemoryDesarrollo, pruebas✓✓
HashiCorp VaultGestión de claves autohospedada✓✓
AWS KMSNativo en la nube (AWS)✓✓
GCP KMSNativo en la nube (GCP)✓✓
PrivyBilleteras integradas✓✓
TurnkeyGestión de claves sin custodia✓✓
FireblocksCustodia institucional✓✓
CDPCoinbase Developer Platform✓✓
CrossmintBilleteras gestionadas Crossmint✓✓
DfnsInfraestructura de billeteras Dfns✓✓
OpenfortBilleteras backend Openfort✓✓
ParaBilleteras MPC Para✓✓
UtilaCustodia MPC Utila✓✓
FordefiCustodia MPC de Fordefi✓✓

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 backend
let signer = Signer::from_memory("base58_private_key")?;
// All signers share the same interface
let pubkey = signer.pubkey();
let signature = signer.sign_transaction(&mut tx).await?;

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 factory
const 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 transaction
const signedTx = await signTransactionWithSigners(
[signer],
compiledTransaction
);

Próximos pasos

Fuente

Desarrollado y mantenido por la Solana Foundation. Con licencia MIT.

Is this page helpful?

Tabla de Contenidos

Editar Página