Una transacción solo se ejecuta si contiene una
firma válida de cada
firmante requerido. Durante el desarrollo local, generalmente se guarda esa
clave como un Keypair y se
firma directamente. En producción, la pregunta importante es diferente: ¿dónde
reside la clave privada y quién está autorizado a firmar con ella?
Nunca incorpores claves privadas en código del lado del cliente, las incluyas en un frontend ni las subas al control de versiones. Cualquiera que obtenga una clave tendrá control total de los fondos de esa cuenta.
Enfoques de firma
| Enfoque | Dónde reside la clave | Quién firma | Ideal para |
|---|---|---|---|
| keypair local | Un archivo o variable de entorno en la máquina | Tu código, directamente | Desarrollo local, pruebas, CI |
| Wallet de navegador | La wallet del usuario final (p. ej. Phantom, Solflare) | El usuario final, por transacción | dApps frontend donde los usuarios firman sus propias transacciones |
| KMS / HSM en la nube | Un servicio de claves respaldado por hardware (AWS KMS, GCP KMS, Vault) | Tu backend solicita una firma al servicio | Servicios backend, operaciones de tesorería, entornos regulados |
| Wallets administradas / MPC | Distribuidas o en custodia en la infraestructura del proveedor | El proveedor co-firma según tu política | Wallets integradas, flujos de aprobación, custodia institucional |
El keypair local es el único enfoque que coloca el material de clave sin procesar dentro de tu aplicación. Todos los enfoques de producción mantienen la clave en una infraestructura dedicada y le solicitan a esa infraestructura que firme en tu nombre.
Firma en el backend
Cuando un servidor necesita firmar — pagar comisiones, enviar transacciones de
programa u operar una tesorería — utiliza un backend de gestión de claves
dedicado en lugar de un keypair sin procesar. La Solana Foundation mantiene
Keychain, una biblioteca de firma unificada (Rust y
TypeScript) que expone una interfaz SolanaSigner en todos los backends de la
tabla anterior: Memory, HashiCorp Vault, AWS KMS, GCP KMS, Fireblocks, Privy,
Turnkey, CDP, Crossmint, Dfns, Para, Openfort y Utila.
Dado que la interfaz es idéntica en todos los backends, puedes desarrollar
localmente con una clave en memoria y cambiar a un backend de producción
mediante configuración, sin necesidad de reescribir el código de la aplicación.
Keychain es compatible con @solana/kit y
el SDK de Rust.
Keychain
Firma unificada para claves locales, KMS, HSM y backends de carteras gestionadas.
Elegir un backend
Compara modelos de custodia y elige el backend de firma adecuado para tu aplicación.
Para la lista de verificación completa de producción — gestión de claves, seguridad de RPC y monitoreo — consulta Preparación para producción.
Is this page helpful?