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
  • 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

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